Let x be a point in (0,1) and let O_x be the open interval (x/2, 1). Then the union from 0 to infinite of your O_x's covers (0,1). Now to find a finite subcover, consider a finite subcollection of O_x's. Try to see here how reducing the upper limit on your union from infinite to some finite value reduces the points that are contained in the cover. For example, let the finite subcover be the union of O_1, O_2,..., O_n. Then if y is the min of 1, 2,..., n, any number less than n/2 is not contained in the finite union.
To think about how this is different for closed sets, consider [0,1], the same thing as the previous set except that it contains 0 and 1. An open cover for this set must contain it's endpoints. So we can take an open cover for this set by fixing a c > 0 and let O_1 = (-c,c), O_2, = (1-c, 1+c), etc. Then you can see that this covers [0,1]. But it contains a finite subcover since now we can choose y such that y/2 is less than c. So the addition of the set (-c, c) allows us to take the finite subcover as the union of O_1, O_2, and O_y. Note that this is only one open cover of [0,1], but you can try other cases for examples.