gpt4 book ai didi

python - 在 python 3 中传递系统属性的有效方法

转载 作者:行者123 更新时间:2023-11-28 19:12:16 25 4
gpt4 key购买 nike

我正在为一个应用程序使用 python 3。对于该实用程序,我需要按如下方式传递命令行参数,

python3 -m com.xxx.executor -Denvironment=dev -Dtoggle=False 

参数 environmenttoggle 也存在于属性文件中。如果该值是在命令行中指定的,它应该覆盖属性文件中存在的内容。

我基本上是一个 java 人,在 java 中,以 -Dkey=value 形式传递的属性将被设置为系统属性。然后可以从代码中读取这些属性,如 System.getProperty(key, defaultVal)

但是当我在 python 3 中尝试相同的方法时,它不起作用。

引用 python 文档后,在我看来 sys._xoptions 适合我的要求。

 python3 -Xenvironment=dev -Xtoggle=False -m com.xxx.executor

然后使用 sys._xoptions 读取属性

我正在使用 Cpython。该线程的目的是确保我进行的方式是否正确。或者在 python 中是否有任何其他更好的方法来实现相同的。

Python老手,请指导!

最佳答案

对于参数解析,我使用 argparse 模块 ( docs ) 来定义哪些是有效的命名和/或位置参数。

还有第三方模块,例如clickdocopt .你应该使用你觉得最舒服的,你是否可以使用第三方模块。单击文档包含它、argparse 和 docopt 之间的(可能有偏见的)比较。

我从未使用过sys._xoptions,也不知道它的存在。以 underscore 开头的函数似乎有点奇怪(通常用于表示“私有(private)”功能)在文档中提到。也许其他人可以阐明这一点。

对于属性文件的解析,我使用了 configparser 模块 ( docs )。当然,如果您愿意,可以选择 JSON 或 YAML 配置文件。

也就是说,当指定为参数时,您必须想出必要的代码来否决属性(尽管这应该不会太难)。

关于python - 在 python 3 中传递系统属性的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com