Revit.ini文件-MissingSectionHeaderError:文件不包含节标题。文件:Revit.ini,行:1'\ xff \ xfe \ r \ x00 \ n'

时间:2019-07-11 02:52:30

标签: python python-2.7 configparser revit

我试图用python编辑Revit.ini文件,但是我继续收到以下错误。在一天的大部分时间里,我一直都把头撞在墙上。任何帮助,在此感谢。

我一直在python 2.7上使用ConfigParser,并通过了他们的文档here,因为在尝试使用* .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:\Python27\lib\ConfigParser.py", line 305, in read
    self._read(fp, filename)
  File "C:\Python27\lib\ConfigParser.py", line 512, in _read
    raise MissingSectionHeaderError(fpname, lineno, line)
MissingSectionHeaderError: File contains no section headers.
file: Revit.ini, line: 1
'\xff\xfe\r\x00\n'

任何帮助都将受到赞赏。我认为它与UTF编码有关(目前我还不熟悉。我打算对此做一些阅读),这意味着我可能必须对其进行解码,然后重新编码,这也是我需要的阅读有关该怎么做的信息。

1 个答案:

答案 0 :(得分:0)

  

我认为这与UTF编码有关

是的,确实如此。错误消息将文件的前两个字节显示为\xff\xfe,这是文本文件的字节顺序标记(BOM),该文本文件包含编码为UTF-16LE(小尾数)的Unicode字符。配置解析器在理解此类文件方面需要一点帮助,因此我们可以要求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。