我试图将文件中的行合并,但观察到以下内容:
word1 word2
word1 word2
我不明白为什么这些行没有被合并,于是我在 vim 中打开文件并使用 :set list
命令查看是否有任何特殊字符,我发现了如下内容:
word1 <feff>word2
word1 word2
我不确定如何在Python中清洗这个词。有什么建议可以清除哪些字符以及如何清除吗?
我试图将文件中的行合并,但观察到以下内容:
word1 word2
word1 word2
我不明白为什么这些行没有被合并,于是我在 vim 中打开文件并使用 :set list
命令查看是否有任何特殊字符,我发现了如下内容:
word1 <feff>word2
word1 word2
我不确定如何在Python中清洗这个词。有什么建议可以清除哪些字符以及如何清除吗?
U+FEFF是字节顺序标记字符(BOM),应该只出现在文档的开头。在文档中,应将其视为ZERO WIDTH NON-BREAKING SPACE
。如果这会引起问题,您可以像删除其他字符一样将其删除:
>>> s = u'word1 \ufeffword2'
>>> s = s.replace(u'\ufeff', '')
>>> s
u'word1 word2'
(在 Python 3.1 或 3.2 中,去掉字符串前面的 u
)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)
。 - Legends = sBytes.decode('UTF-8')
解码UTF-8字符串。通过包含ä
或Σ
的输入测试您的代码! - phihaglines = codecs.open('file.txt', 'r', 'utf-8')
,假设你的文件是以 utf-8 编码的。 - Matt N.w = w.replace('\xef\xbb\xbf', '')
谢谢你的指点。 - Legendmytext.split(string.whitespace)
吗?mytext.split('$')
。 - Matt N.\xed\xbb\xbf
替换解决了我的问题。 - Legend