在Python中将'^ M'视为常规字符

时间:2018-06-01 09:45:33

标签: python python-3.x

我有一个文件包含生成LaTeX数学表达式的文本,每行一个。该文件应包含103,559行。但是有些行在末尾包含字符序列'^ M'(CTRL-v CTRL-m)或散布在行内,可能多次。因此,当我尝试使用Python从文件中读取行时,返回的行数大于预期(实际返回104,654行)。

如何告诉Python在序列'^ M'的每次出现时都不生成换行符?谢谢。

1 个答案:

答案 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')字符会将当前点放在行的开头,覆盖现有字符。)