如何在 Python 中读取包含 ^M 字符的文本行?

How to read in text lines containing ^M character in Python?

时尚 娱乐明星 设计 家装家居 过节指南圣诞节穿搭^M 圣诞月怎么红红绿绿怎么来

我正在阅读上面的文本文件:

with open('test.tsv', 'r', encoding='utf8') as f:

   for line in f:
      print(f)

由于^M字符,该行结束于该字符,而不是整行。如何将整个文本阅读为一行而不是多行?我可以用 space.

替换它

在vim中,我尝试在mac上按Ctr+M搜索,但搜索失败。如何在 vim 或 python 代码中删除它以将其替换为 space?

使用以下命令删除 vim 中的 ^M 并插入 ^MCtrl+V Ctrl+M

:s/^M$//

如果您想将 ^M 替换为 newline,请使用

而不是删除 ^M
:%s/^M/\r/g

对于 mac 用户使用 dos2unix 命令

dos2unix myfile.txt

无需使用 Ctrl,您可以使用以下命令替换 ^M

:%s/\r$/ /g