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?
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.