Python 101 (part 5): Snake Oil For The Soul - Standing In Line
(Page 4 of 8 )
There's also another method of reading data from a file - the readline()method call, used to read a single line at a time.
>>> data = open("snakeoil.txt")
>>> data.readline()
'After years of research, scientists at AB Labs have come up with a radical
new product, once that promises to improve the quality of life for humans
and animals everywhere.\012'
>>> data.readline()
' \012'
>>> data.readline()
'We call it Air In A Bottle(tm), and we firmly consider it to be one of our
best inventions ever.\012'
>>>
You can combine this with a loop that will run through the file, printingone line after another:
#!/usr/bin/python
# open file
data = open("snakeoil.txt")
# read first line
line = data.readline()
# loop until EOF
while line != "":
print line,
line = data.readline()
else:
print "-- all done --"
# clean up
data.close()
Well, it works - but how about making it a little more efficient? Insteadof reading a file line by line, you can also suck the entire thing straightinto your program via a list - definitely more likely to impress the girls!
#!/usr/bin/python
# open file
data = open("snakeoil.txt")
# read file into list
lines = data.readlines()
# loop until EOF
for x in lines:
print x,
else:
print "-- all done --"
# clean up
data.close()
In this case, the readlines() method is used to read the file into a list.Each element of the list now corresponds to a single line from the file.
>>> data.readlines()
['After years of research, scientists at AB Labs have come up with a
radical new product, once that promises to improve the quality of life for
humans and animals everywhere.\012', ' \012', 'We call it Air In A
Bottle(tm), and we firmly consider it to be one of our best inventions
ever.\012', '\012', 'Carry it around
with you (the bottle is titanium, the same material used in rocket ships,
and the air is, well, air) and inhale from it whenever you need some air.
Or give it to your friends as a present (after all, they need air
too!)\012', '\012', 'Air In A Bottle(tm). Get some today!\012']
>>>
Once this has been done, it's a simple matter to run through the list anddisplay its contents with the "for" loop.
Next: Learning To Write >>
More Python Articles
More By Vikram Vaswani, (c) Melonfire