Python проект через cmd с разными конфигурационными файлами
Я хочу начать свой проект на Python через окно cmd с различными конфигурациями, например, функцией, которая требует другого параметра:
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']
Но это не сработало. У кого-нибудь есть идея?
Большое спасибо!
1 ответ
Вам не нужно запускать скрипт несколько раз для каждого параметра. Просто используйте модуль 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']