[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