Python 通过 cmd 使用不同的配置文件进行项目
Python project through cmd with different config files
我想通过具有不同配置的 cmd window 启动我的 python 项目,例如需要不同参数的函数:
download.rawData.download(starttime=starttime, endtime=endtime)
开始时间和结束时间值来自配置文件:(config1.cfg)
[Parameter]
starttime=Monday
endtime=Tuesday
config2.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 module to parse your config file, which you specify on the command line (via the 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']
我想通过具有不同配置的 cmd window 启动我的 python 项目,例如需要不同参数的函数:
download.rawData.download(starttime=starttime, endtime=endtime)
开始时间和结束时间值来自配置文件:(config1.cfg)
[Parameter]
starttime=Monday
endtime=Tuesday
config2.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 module to parse your config file, which you specify on the command line (via the 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']