im 尝试使用 python 编辑我的 Revit.ini 文件,但我继续收到以下错误。在一天中的大部分时间里,我一直在用头撞墙。感谢任何帮助。
我一直在python 2.7上使用ConfigParser,并在这里浏览他们的文档,因为它们似乎是尝试使用*.ini文件时要走的路。当我创建自己的 *.ini 文件来测试内容时,一切正常,但是当我尝试在其他 *.ini上运行测试时,我收到错误。
到目前为止我的代码
import ConfigParser
config = ConfigParser.RawConfigParser()
config.read('Revit.ini')
我的错误
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:Python27libConfigParser.py", line 305, in read
self._read(fp, filename)
File "C:Python27libConfigParser.py", line 512, in _read
raise MissingSectionHeaderError(fpname, lineno, line)
MissingSectionHeaderError: File contains no section headers.
file: Revit.ini, line: 1
'xffxferx00n'
感谢任何和所有的帮助。我认为这与 UTF 编码有关(我还不熟悉,我打算对它进行一些阅读(,这意味着我可能必须对其进行解码,然后重新编码,我还需要阅读该怎么做。
我认为这与UTF编码有关
是的,确实如此。错误消息将文件的前两个字节显示为xffxfe
,这是包含编码为 UTF-16LE(小端序(的 Unicode 字符的文本文件的字节顺序标记 (BOM(。配置解析器在理解此类文件方面需要一点帮助,因此我们可以要求io
模块伸出援手:
config = configparser.ConfigParser()
with io.open('revit.ini', mode='r', encoding='utf-16') as fp:
config.read_file(fp)
请注意,以上内容适用于Python_3。Python_2距离生命周期结束(2020 年 1 月(不到六个月,之后预计许多软件包将放弃对它的支持,因此您确实应该考虑过渡到 Python_3。