gpt4 book ai didi

python - 如何使用 Python ConfigParser 从 ini 文件中删除一个部分?

转载 作者:太空狗 更新时间:2023-10-30 02:42:14 24 4
gpt4 key购买 nike

我正在尝试使用 Python 的 ConfigParser 库从 ini 文件中删除一个 [section]。

>>> import os
>>> import ConfigParser
>>> os.system("cat a.ini")
[a]
b = c

0

>>> p = ConfigParser.SafeConfigParser()
>>> s = open('a.ini', 'r+')
>>> p.readfp(s)
>>> p.sections()
['a']
>>> p.remove_section('a')
True
>>> p.sections()
[]
>>> p.write(s)
>>> s.close()
>>> os.system("cat a.ini")
[a]
b = c

0
>>>

似乎 remove_section() 只发生在内存中,当要求将结果写回 ini 文件时,没有什么可写的。

关于如何从 ini 文件中删除一个部分并保留它有什么想法吗?

我打开文件的方式不正确吗?我试过 'r+' & 'a+' 但没有用。我无法截断整个文件,因为它可能包含其他不应删除的部分。

最佳答案

您最终需要以写模式打开文件。这将截断它,但这没关系,因为当您写入它时,ConfigParser 对象将写入仍在该对象中的所有部分。

你应该做的是打开文件进行读取,读取配置,关闭文件,然后再次打开文件进行写入并写入。像这样:

with open("test.ini", "r") as f:
p.readfp(f)

print(p.sections())
p.remove_section('a')
print(p.sections())

with open("test.ini", "w") as f:
p.write(f)

# this just verifies that [b] section is still there
with open("test.ini", "r") as f:
print(f.read())

关于python - 如何使用 Python ConfigParser 从 ini 文件中删除一个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37265888/

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