python - 通过 cmd 使用不同的配置文件进行 Python 项目
问题描述
我想通过具有不同配置的 cmd 窗口启动我的 python 项目,例如需要不同参数的函数:
download.rawData.download(starttime=starttime, endtime=endtime)
starttime 和 endtime 值来自配置文件:(config1.cfg)
[Parameter]
starttime=Monday
endtime=Tuesday
配置2.cfg:
[Parameter]
starttime=tuesday
endtime=friday
从 cmd 启动项目的最佳方法是什么,例如:
Python3 project.py --config1 //for time X
Python3 project.py --config2 //for time Y
...等等,当然在配置文件中声明了不同的开始和结束时间
目标是开始和结束时间的配置在主项目中没有硬编码。
我到目前为止所尝试的:
commandLineArgumentParser: ArgumentParser = argparse.ArgumentParser()
commandLineArgumentParser.add_argument("-config1", "--config1", help="Config file 1")
commandLineArgumentParser.add_argument("-config2", "--config2", help="Config file2")
commandLineArguments = commandLineArgumentParser.parse_args()
config1= commandLineArguments.odessa
starttime = config['Parameter']['starttime']
endtime = config['Parameter']['endtime']
但这不起作用有人有想法吗?
非常感谢!
解决方案
您不需要为每个参数多次运行脚本。只需使用configparser模块来解析您在命令行上指定的配置文件(通过argparse模块):
import argparse
import configparser
parser = argparse.ArgumentParser()
parser.add_argument('config', help="Config file to parse")
args = parser.parse_args()
config = configparser.ConfigParser()
config.read(args.config)
config.sections() # Returns ['Parameter']
start = config['Parameter']['starttime']
end = config['Parameter']['endtime']
推荐阅读
- java - 在 Java 语言规范版本 11 的第 4.10.2 节中,我如何阅读 Uₖ θ?
- ios - 无法从 iPhone 连接到 localhost(在 Mac Mini 上运行)
- c++ - 与“未初始化的堆栈指针”冲突
- azure - 在 shell 脚本中使用 while 循环与 AKS CLI 并行创建多个 AKS 群集
- python - Python selenium webdriver:只读取第一个审稿人信息
- javascript - 函数中回调函数的返回值
- typescript - 为什么具有多种类型的泛型在可视代码中触发编译时错误
- python - 在 Django 中创建一个可用于在用户之间转发博客文章的按钮
- flutter - 无法使用 vscode 扩展包装代码?
- python - 通过切片将字符串转换为列表:可能是控制流/语法查询