[Tutor] Re: Print record x in a file
Kent Johnson
kent37 at tds.net
Mon Jan 24 00:07:01 CET 2005
David Holland wrote:
> Kent,
>
> I know that you know far more about python than me but
> is that right ?
> I created file with 4 records and this code did print
> them all randomly:-
>
> import random
> i = 0
> while i < 10:
> file = open('filename')
> listcontents = file.readlines()
> file.close()
> lenoflist = len(listcontents)-1
> x = random.randrange(0,lenoflist)
> print listcontents[x], i
> i = i +1
>
>
> While although this code below does work many times
> nothing is printed out.
> import random
> i = 0
> while i < 10:
> file = open('test.rantxt')
> listcontents = file.readlines()
> file.close()
> lenoflist = len(listcontents)#-1
> x = random.randrange(0,lenoflist)
> print listcontents[x], i
> i = i +1
It sounds like your file has a blank line at the end. What do you get if you print
len(listcontents)? Is it 4 or 5? Where do you think 'nothing' is coming from?
Try this:
import random
listcontents = [1,2,3,4]
for i in range(10):
lenoflist = len(listcontents)-1
x = random.randrange(0,lenoflist)
print listcontents[x]
I never get a 4...
Kent
More information about the Tutor
mailing list