添加新选项 configparser 时的重复部分
Duplicate section when adding a new option configparser
当我向某个部分添加新选项并将文件写入配置时,它似乎总是复制该部分并添加带有新选项的新选项。
理想情况下我想避免这种情况并且只有一个部分,我该如何实现?
实例出现
config.add_section("Install")
config.set("Install", "apt_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()
config.read("file.cfg")
config.set("Install", "deb_installer", "True")
cfile = open("file.cfg", "a")
config.write(cfile)
cfile.close()
当您打开 file.cfg 时,它会安装两次,一次使用 apt_installer,一次使用 apt_installer 和 deb_installer。任何人都可以提供任何建议,我将不胜感激。
我认为这里的问题是您在 append
模式下打开文件。尝试更改行:
cfile = open("file.cfg", "a")
和
cfile = open("file.cfg", "w")
您还应该添加以下行:
import configparser
config = configparser.ConfigParser()
在顶部以使您的示例正常工作。所以最后你的例子应该是这样的:
import configparser
config = configparser.ConfigParser()
config.add_section("Install")
config.set("Install", "apt_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()
r = config.read("file.cfg")
config.set("Install", "deb_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()
当我向某个部分添加新选项并将文件写入配置时,它似乎总是复制该部分并添加带有新选项的新选项。
理想情况下我想避免这种情况并且只有一个部分,我该如何实现?
实例出现
config.add_section("Install")
config.set("Install", "apt_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()
config.read("file.cfg")
config.set("Install", "deb_installer", "True")
cfile = open("file.cfg", "a")
config.write(cfile)
cfile.close()
当您打开 file.cfg 时,它会安装两次,一次使用 apt_installer,一次使用 apt_installer 和 deb_installer。任何人都可以提供任何建议,我将不胜感激。
我认为这里的问题是您在 append
模式下打开文件。尝试更改行:
cfile = open("file.cfg", "a")
和
cfile = open("file.cfg", "w")
您还应该添加以下行:
import configparser
config = configparser.ConfigParser()
在顶部以使您的示例正常工作。所以最后你的例子应该是这样的:
import configparser
config = configparser.ConfigParser()
config.add_section("Install")
config.set("Install", "apt_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()
r = config.read("file.cfg")
config.set("Install", "deb_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()