原帖:http://stackoverflow.com/questions/339537/end-line-characters-from-lines-read-from-text-file-using-python
1.
When reading lines from a text file using python, the end-line character often needs to be truncated before processing the text, as in the following example:
f = open("myFile.txt", "r")
for line in f:
line = line[:-1]
# do something with line
Is there an elegant way or idiom for retrieving text lines without the end-line character?
2.
The idiomatic way to do this in Python is to use rstrip('\n'):
for line in open('myfile.txt'): # opened in text-mode; all EOLs are converted to '\n'
line = line.rstrip('\n')
process(line)
Each of the other alternatives has a gotcha:
- file('...').read().splitlines() has to load the whole file in memory at once.
- line = line[:-1] will fail if the last line has no EOL.
|
HTTP and other protocols specify '\r\n' for line endings, so you should use line.rstrip('\r\n') for robustness. –
too much php
Dec 10 '08 at 1:39
|