Nic*_*k H 3 ini config python-2.7
这可能是一个简单的答案,但在谈到 Python 时我真的很陌生。我已经获得了现有代码,我正在尝试为它创建一个配置文件,而以前它对所有内容进行了硬编码。我想要一个default带有源代码的配置,但是当他们第一次运行它时,让程序在用户的主目录(例如 ~/.config)中创建该配置文件的副本。这样他们就可以在他们的主目录中编辑文件而不是编辑源代码。(至少有人告诉我这是最好的。)我对语法和诸如此类的东西真的很糟糕,但我知道它应该是这样的:
try import ~/.config/cfg.ini
Run Code Online (Sandbox Code Playgroud)
除非文件不存在,进口defaultconfig创造的defaultconfig称为副本cfg.ini中~/.config(目录〜/的.config就必须再创建太)
目前我只有config.py我的源代码,然后在需要值时使用导入配置和 config.(variable name)。
我知道这格式不好,抱歉。
通常不可能从 Python 中的不同目录结构导入源代码。您应该使用 aconfigparser来读取和写入数据。
我把程序分成两个文件,首先你运行write_default_config.py生成默认配置。然后在每次调用main.py脚本时检查用户配置文件的存在,否则在创建必要的文件夹后从源目录复制它。
write_default_config.py:
import configparser
config = configparser.ConfigParser()
config.add_section('section')
config['section']['setting_1'] = "hello"
config['section']['setting_2'] = "goodbye"
with open("default_config.ini", 'w') as f:
config.write(f)
Run Code Online (Sandbox Code Playgroud)
主要.py:
import os, shutil, configparser
user_config_dir = os.path.expanduser("~") + "/.config/Nick_H"
user_config = user_config_dir + "/user_config.ini"
if not os.path.isfile(user_config):
os.makedirs(user_config_dir, exist_ok=True)
shutil.copyfile("default_config.ini", user_config)
config = configparser.ConfigParser()
config.read(user_config)
print(config['section']['setting_1'])
print(config['section']['setting_2'])
Run Code Online (Sandbox Code Playgroud)
您始终可以使用部分读取和写入配置数据。如果您觉得不需要部分,这会很麻烦,但似乎没有办法绕过它。
我的例子写了两个字符串,然后打印它们只是为了展示事情是如何工作的,你应该用你自己的信息替换它。
| 归档时间: |
|
| 查看次数: |
6345 次 |
| 最近记录: |