HomePython Page 4 - Python 101 (part 5): Snake Oil For The Soul
Standing In Line - Python
Now that you know how to create and use Python's tuples, listsand dictionaries, it's time to get your hands dirty. In this article, findout how to read from, and write to, files on the filesystem with built-inPython methods, and also take a look at some of the new features availablein Python 2.x.
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.