gpt4 book ai didi

Python3 configparser 首先参数必须是字节或字节元组,而不是 str

转载 作者:行者123 更新时间:2023-11-30 21:57:51 26 4
gpt4 key购买 nike

我正在这样做:

tar = tarfile.open("stuff.tar")
cfg = configparser.ConfigParser(allow_no_value=True)
cfg.read_file(tar.extractfile("ook.ini"))

文件“ook.ini”确实位于“stuff.tar”存档内。

但是,我明白了:

[…] ← Really not relevant stack trace. It's just where my code calls this.
File "/usr/local/lib/python3.7/configparser.py", line 1030, in _read
if line.strip().startswith(prefix):
TypeError: startswith first arg must be bytes or a tuple of bytes, not str

根据文档,read_file() read and parse configuration data from f which must be an iterable yielding Unicode strings所以我传递的应该没问题,不是吗?

我做错了什么?

最佳答案

TarFile.extractfile(member)返回以二进制模式打开的文件。 read_file 的等效项是以文本 模式打开的文件。因此,两者不匹配。

您可以将提取的文件包装在 io.TextIOWrapper 中或转换为 unicode 的生成器:

tar = tarfile.open("stuff.tar")
cfg = configparser.ConfigParser(allow_no_value=True)
cfg.read_file(
line.decode() for line in tar.extractfile("ook.ini")
)

关于Python3 configparser 首先参数必须是字节或字节元组,而不是 str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55118890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com