ConfigParser 已成功设置新值,但未显示在 ini Python 3 中

ConfigParser is successfully setting new values, but doesn't show up in ini Python 3

我在让配置解析器模块工作时遇到了一些问题。我目前正在创建文件备份程序,但每当我设置值时,它们都不会显示在 .ini 文件中。 config.get 确认设置正确,但 document_backup.ini 为空白。

config = configparser.ConfigParser()
config.read('document_backup.ini')
config.set('FTP_Login','Host',input("FTP Host: "))
config.set('FTP_Login','UserName',input("FTP UserName: "))
config.set('FTP_Login','Password',input("FTP Password: "))
config.read('') #To close the file, I think

修改内存配置不会影响最初读取的文件。您需要将新配置写回磁盘。

config = configparser.ConfigParser()
config.read('document_backup.ini')
config.set('FTP_Login','Host',input("FTP Host: "))
config.set('FTP_Login','UserName',input("FTP UserName: "))
config.set('FTP_Login','Password',input("FTP Password: "))
with open("document_backup.ini.new", "w") as fh:
    config.write(fh)
os.rename("document_backup.ini", "document_backup.ini~")
os.rename("document_backup.ini.new", "document_backup.ini")

请注意,configparser 模块不提供任何方法来编辑 现有配置文件。新文件将产生等效的配置,但可能与原始文件的形式不同。

config.read('') 没有关闭文件...

试试这个,它对我有用:

config = ConfigParser.RawConfigParser()
config.add_section("MyApp")
config.set("MyApp", "window_height", self.height())
config.set("MyApp", "window_width", self.width())
configfile = open("/path/to/the/file.ini", 'w')
config.write(configfile)
configfile.close()

并从中读取:

config = ConfigParser.RawConfigParser()
config.read("/path/to/the/file.ini")
self.width = config.getint("MyApp", "window_height")
self.height = config.getint("MyApp", "window_width")

它也适用于 config.getboolean("MyApp","variable") 或只是 config.get("MyApp","variable") 字符串