Python's open(filename,'r').readlines() method provides a list of lines from a file, but each element includes a newline character. To retrieve the data without these characters, several approaches are available.
One method is to read the entire file and split the lines using str.splitlines:
temp = file.read().splitlines()
Alternatively, you can strip the newline from each line manually:
temp = [line[:-1] for line in file]
Note: This approach assumes the file ends with a newline; otherwise, the last line will lose a character.
To avoid this issue, you can append a newline to the end of the file if it's missing:
with open(the_file, 'r+') as f: f.seek(-1, 2) if f.read(1) != '\n': f.write('\n') f.flush() f.seek(0) lines = [line[:-1] for line in f]
Or, more concisely, strip the newline:
[line.rstrip('\n') for line in file]
The readlines method effectively emulates the following code:
def readlines(self): lines = [] for line in iter(self.readline, ''): lines.append(line) return lines
Therefore, readlines() also retains the newline characters read by readline().
The above is the detailed content of How Can I Read a File in Python Without Newline Characters?. For more information, please follow other related articles on the PHP Chinese website!