我仍在学习,并试图了解所有这些工作原理。
我编写了一个脚本,其中包含一些用户可配置的内容,这些内容存储在单独的config.py
文件中。
当我运行脚本时,它将从该config.py
文件中导入变量。
如果我用pyinstaller编译它,那么它将不再在外部寻找它
我的最终用户需要能够即时更新配置,以更改某些变量的作用
它用于排序和组织一些数据,因此一个用户可能拥有
variable1 = ('data1','data2','data3')
另一个用户可能需要添加data4
或从该列表中删除data2
,以根据其任务来自定义
如何做到这一点,以便在编译脚本的主要部分之后,我仍然可以拥有一个可编辑的配置文件,最终用户可以更改变量
-编辑以显示我已经发生的事情
这是我使用的当前配置文件...它叫做SortingConfig.py 然后我在主脚本中通过文件开头的这一行访问它
从SortingConfig导入*
#### Fill in your Details Below
#### Format within each set of () should look as Follows
#### ('Item 1' , 'Item 2' , 'Item 3')
#### Words that use an ' in the name such as L'Acoustics
#### Need to be Formatted as ('L\'Acoustics)
#### Using the Product Code instead of the Product Description
#### can solve alot of problems created by Product Descriptions with an ' in them
#L1 Category to Keep
l1cat=('Audio Terminal', 'Communications/Telephone', 'Microphones', 'Speakers')
#Category to Remove
cat=('Audio Snakes', 'Speaker Accessories', 'Mic Accessories', 'W Coupler Cables')
#If Item appears in L1 / Category / Product Code / Product Description, Color it
#Formatting = (['Item1', 'Item2', 'Item3'])
#Color 1
color01=('00FCC84E')
cat1=(['Speakers','Atlas Mic Stands'])
#Color 2
color02=('00ABFF6B')
cat2=(['Audio Mixers/Console'])
#Color 3
color03=('00FF0000')
cat3=(['None'])
#Color 4
color04=('0000FFFF')
cat4=(['None2'])
#Color 5
color05=('0000FF00')
cat5=(['None3'])
答案 0 :(得分:0)
您当然可以为每个用户有一个可自定义的配置文件。您需要将其设置在程序和用户都可以找到的特定位置。通常,它设置为类似(在Windows中)%USERPROFILE%\.myprogname\config.json
。 (我写这篇文章是假设您正在使用json文件进行配置,尽管任何文件类型都可以。)
在程序中,您可以检查文件是否存在,如果存在,请使用它。否则,请使用与可执行文件打包在一起的默认值。
import os
import json
user_config = os.environ.get('USERPROFILE') + '\\.myprognam\\config.json'
if os.path.exists(user_config) and os.path.isfile(user_config):
config_path = user_config
else:
config_path = 'path/to/default_config.json'
with open(config_path) as fp:
config = json.load(fp)