问题标签 [configparser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Python ConfigParser 中按字母排序导出
是否有任何解决方案可以强制 RawConfigParser.write() 方法以字母顺序导出配置文件?
即使对原始/加载的配置文件进行了排序,该模块也会任意将部分和选项混合到部分中,手动编辑一个巨大的未排序配置文件真的很烦人。
PD:我正在使用 python 2.6
python - 如何从 Python ConfigParser .items() 中排除默认值?
我正在使用 ConfigParser 从配置文件中加载数据,如下所示:
测试.conf:
加载.py:
输出:
我很惊讶变量替换的默认值('datadir', '/tmp')
显示为 . items()
并.get()
返回,就好像它们是配置文件中的值一样。这种行为是预期的吗?任何变通方法,以便我可以简单地迭代.items()
而无需在其中获取默认字典值,但仍使用魔术插值?
参考:http ://docs.python.org/library/configparser.html
谢谢!
更新:有人指出这是预期的行为:默认值就像配置文件中的任何其他名称/值对一样。同样,配置文件中的名称/值对也可用于“魔术插值”,所以如果我定义:
我去拿[... ('zap': 'barnowl')]
这非常简洁,但我仍然想知道我是否可以完成我想要完成的事情:迭代我的配置文件中的名称/值对,使用变量插值,没有默认值。
我的具体情况是这样的:我想用类似的东西初始化配置对象{basedir: '/foo/bar'}
,因为某些文件的绝对路径因安装而异。然后我需要将该配置对象传递给并让各种其他类遍历文件。我不希望每个读取配置的类都必须知道它是用某些默认值初始化的,并且应该忽略它们,因为它们不是实际文件。这可能吗?有什么方法可以隐藏 .item() 和 .get() 的默认值但仍然有插值?谢谢!
python - Python ConfigParser:如何计算在特定部分中设置的选项(而不是默认值)
我有一个使用标准 ConfigParser 库中的 RawConfigParser 读取的配置文件。我的配置文件有一个 [DEFAULT] 部分,后跟一个 [特定] 部分。当我遍历 [specific] 部分中的选项时,它包括 [DEFAULT] 下的选项,这就是要发生的事情。
但是,对于报告,我想知道该选项是在 [特定] 部分还是在 [DEFAULT] 中设置的。有什么办法可以通过 RawConfigParser 的接口来做到这一点,还是我别无选择,只能手动解析文件?(我已经找了一点,我开始担心最坏的情况......)
例如
[默认]
名字=一个
姓氏 = b
[部分]
名称 = b
年龄 = 23
你怎么知道,使用 RawConfigParser 接口,选项 name 和 surname 是从 [DEFAULT] 部分还是 [SECTION] 部分加载的?
(我知道 [DEFAULT] 旨在适用于所有人,但您可能希望在内部报告此类事情,以便通过复杂的配置文件工作)
谢谢!
python - python ConfigParser 模块
我有以下ini文件
当我使用 ConfigParser 模块时:
它总是打印 0 有人可以帮忙吗
python - ConfigParser 中的更新部分(或替代方法)
我正在为另一个程序制作一个插件,所以我试图让事情尽可能轻量级。
我需要做的是能够更新 ConfigParser 的配置文件中的一个部分的名称。
然后我有文本字段,用户可以在其中编辑项目的名称、作者、电子邮件和年份。
我认为更改 [项目名称] 是不可能的,所以我想到了两种解决方案:
1 - 让我的配置文件是这样的:
这样我就可以像其他选项一样更改项目的名称。但问题是,我需要 # 部分自动递增([0]、[1] 等)。要做到这一点,我必须得到每个部分,排序,并弄清楚下一个数字应该是什么。
另一种选择是删除整个部分及其值,并使用更新的值重新添加它,这也需要更多的工作,例如通过函数传递一个保存旧部分名称的变量等,但是如果它更快,我不介意。
两者哪个最好?还是有其他方法?我愿意采用最快/轻量级的解决方案,不管它是否需要更多的工作。
python - 从配置文件中读取 Pythonic
我有一个使用 ConfigParser 读取配置文件的 python 类:
配置文件:
Python代码:
我觉得最后四行是重复的,应该以某种方式压缩为一个 Pythonic 行,该行将self.item
为该部分中的每个项目创建一个变量。
有任何想法吗?
亚当
更新:
根据您的回答,我已将代码修改为:
现在,
python - 使用 ConfigParser 从配置文件中读取颜色以与 Pygame 一起使用
在配置文件中,我将变量定义为
这应该适用screen.fill
于 Pygame 的设置或任何颜色参数。我能做的screen.fill(0,0,0)
我认为的问题是,对于通过 a 读取的整数,configfile
我必须int()
将字符串转换为 int。对于颜色 int 之类的东西不起作用,我不知道应该使用什么。
那是python的错误。
python - 哪里是存储 Python 脚本的 Windows 配置文件的好地方/方法?
我有一个我正在处理的脚本/程序,它需要一个配置文件(我正在使用ConfigParser
)。在 linux 上,我将默认将这些变量存储在~/.myscript
使用os.getenv('HOME')
函数中。
使用 Windows,我知道我可以用来查找用户的“主”目录,但是,以这种方式保存隐藏文件(即,使用 name )是否os.getenv('USERPROFILE')
是个好主意?.myscript
显然,我不使用 Windows,但希望对那些使用 Windows 的人有所了解。
在 Windows 上是否有标准的位置/方式来存储这些配置变量?
python - 在 configparser 中不保留大小写(默认情况下)的理由是什么?
如果我想在配置文件中保留键名,我必须添加configparser.optionxform = str
. 我对这种( configparser )行为感到惊讶,期望大小写保留是默认(如果不是唯一)选项。
你能理解这个吗?这个决定背后的理由是什么?
python - Python,ConfigParser:什么是“神奇插值”
Python 中 ConfigParser 的文档大量讨论了所谓的“神奇插值”功能,但从未解释它的实际作用。我试过搜索它,但没有找到任何答案。