我有一个文件,其中包含生成 LaTeX 数学表达式的文本,每行一个。这个文件应该正好包含 103,559 行。但是有些行在末尾或散布在行中包含字符序列 '^M' (CTRL-v CTRL-m),可能多次。结果,当我尝试使用 Python 从文件中读取行时,返回的行数大于预期(实际上返回 104,654 行)。
如何告诉 Python 不要在每次出现序列 '^M' 时生成换行符?谢谢你。
我有一个文件,其中包含生成 LaTeX 数学表达式的文本,每行一个。这个文件应该正好包含 103,559 行。但是有些行在末尾或散布在行中包含字符序列 '^M' (CTRL-v CTRL-m),可能多次。结果,当我尝试使用 Python 从文件中读取行时,返回的行数大于预期(实际上返回 104,654 行)。
如何告诉 Python 不要在每次出现序列 '^M' 时生成换行符?谢谢你。
使用newline
参数来open()
。
几乎是读取文件时不要转换换行符的副本,我从那里得到了这个解决方案:
with open(sys.argv[1], 'r', newline='\n') as fh:
for i, line in enumerate(fh):
print(i, line)
(请注意,在本例中打印时,^M
( '\r'
) 字符会将当前点置于行首,覆盖现有字符。)