【问题标题】:Revit.ini file - MissingSectionHeaderError: File contains no section headers. file: Revit.ini, line: 1 '\xff\xfe\r\x00\n'Revit.ini 文件 - MissingSectionHeaderError:文件不包含节标题。文件:Revit.ini,行:1 '\xff\xfe\r\x00\n'
【发布时间】:2019-11-20 16:32:24
【问题描述】:

我正在尝试使用 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 编码有关(我还不熟悉。我打算对其进行一些阅读),这意味着我可能必须对其进行解码然后重新编码,这也是我需要的阅读该做什么。

【问题讨论】:

标签: python python-2.7 configparser revit


【解决方案1】:

我认为这与 UTF 编码有关

是的,确实如此。错误消息将文件的前两个字节显示为\xff\xfe,这是包含编码为 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 月)还有不到 6 个月的时间,在这之后,预计很多软件包都会放弃对它的支持,所以你真的应该考虑过渡到 Python_3。

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 2017-02-11
    • 2019-06-07
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多