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