为什么在 Python 中读取文件时会出现重叠行?
Why I get overlapped lines from a file when I read it in Python?
我正在尝试读取 Python 中的单个文件并打印它。我正在为此使用此代码:
filename = 'test.txt'
with open(filename, 'r') as f:
for line in f:
print line
文件内容('test.txt'),就是下一个:
MYPROGRAM
1 1 16/02/2015 2 4300004734 DOE, JOHN 201512 F/201512 132,00 1 DOE, JOHN 10180063X ANY ADRESS Nº XX LEVEL DOOR 24397 CITY STATE COUNTRY 2
1 2 16/02/2015 1 7000000000 201512 F/201512 120,00 1 2
1 3 16/02/2015 3 4770000000 201512 F/201512 12,00 1 10,00 0 120,00 2
此处未显示的字段之间存在空格、制表符和换行符。
输出是这样奇怪的东西:
1YPROGRA1 16/02/2015 2 4300004734 DOE, JOHN 201512 F/201512 1LEVEL D3OR 16/02/2015TY 3TATE 4770000000 201512 F/2015122 120,00
有些线条与其他线条重叠。为什么?如何在不修改原始文本文件的情况下解决这个问题?
文件 'test.txt' 包含回车符 returns (\r
) 但没有换行符 (\n
)。
此代码会将整个文件读入一个字符串,将其拆分为回车 returns,然后逐行打印:
with open(filename, 'r') as f:
s = f.read()
for line in s.split('\r'):
print line
或者,您可以将其拆分并在一行中打印:
print '\n'.join(s.split('\r'))
第二种方法效率稍高,但恕我直言,第一种方法可读性更高。
我正在尝试读取 Python 中的单个文件并打印它。我正在为此使用此代码:
filename = 'test.txt'
with open(filename, 'r') as f:
for line in f:
print line
文件内容('test.txt'),就是下一个:
MYPROGRAM
1 1 16/02/2015 2 4300004734 DOE, JOHN 201512 F/201512 132,00 1 DOE, JOHN 10180063X ANY ADRESS Nº XX LEVEL DOOR 24397 CITY STATE COUNTRY 2
1 2 16/02/2015 1 7000000000 201512 F/201512 120,00 1 2
1 3 16/02/2015 3 4770000000 201512 F/201512 12,00 1 10,00 0 120,00 2
此处未显示的字段之间存在空格、制表符和换行符。
输出是这样奇怪的东西:
1YPROGRA1 16/02/2015 2 4300004734 DOE, JOHN 201512 F/201512 1LEVEL D3OR 16/02/2015TY 3TATE 4770000000 201512 F/2015122 120,00
有些线条与其他线条重叠。为什么?如何在不修改原始文本文件的情况下解决这个问题?
文件 'test.txt' 包含回车符 returns (\r
) 但没有换行符 (\n
)。
此代码会将整个文件读入一个字符串,将其拆分为回车 returns,然后逐行打印:
with open(filename, 'r') as f:
s = f.read()
for line in s.split('\r'):
print line
或者,您可以将其拆分并在一行中打印:
print '\n'.join(s.split('\r'))
第二种方法效率稍高,但恕我直言,第一种方法可读性更高。