Python проект через cmd с разными конфигурационными файлами - PullRequest
0 голосов
/ 15 января 2019

Я хочу запустить свой проект на 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 Ответ

0 голосов
/ 15 января 2019

Вам не нужно запускать скрипт несколько раз для каждого параметра.Просто используйте модуль 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']
...