从文件中删除<feff>

Adr*_*ian 1 python xml linux bash

我正在使用 Python脚本将CSV转换为XML.转换后,我在文本(vim)中看到标签,这会导致XML解析错误.

在此输入图像描述

我已经尝试过这里的答案,没有成功.

转换后的XML 文件.

谢谢你的帮助!

小智 9

将 utf-8 更改为utf-8-sig

导入 csv
以 open('example.txt', 'r',encoding='utf-8-sig') 作为文件:


met*_*ter 8

您的输入文件具有BOM(字节顺序标记)字符,并且当文件以utf8编码时,Python不会自动删除它们.请参阅:使用Python中的BOM字符读取Unicode文件数据

>>> s = '\xef\xbb\xbfABC'
>>> s.decode('utf8')
u'\ufeffABC'
>>> s.decode('utf-8-sig')
u'ABC'
Run Code Online (Sandbox Code Playgroud)

所以对于你的具体情况,尝试类似的东西

from io import StringIO
s = StringIO(open(csvFile).read().decode('utf-8-sig'))
csvData = csv.reader(s)
Run Code Online (Sandbox Code Playgroud)

非常可怕的风格,但该脚本无论如何都是一个黑客攻击的脚本一次性工作.