Вы задаете вопрос с несколькими уровнями ответов.
Сначала командная строка передается в массив sys.argv. argv - это историческое имя из языков Си и Unix. Итак:
~/p$ cat > args.py
import sys
print "You have ", len(sys.argv), "arguments."
for i in range(len(sys.argv)):
print "argv[", i, "] = ", sys.argv[i]
~/p$ python args.py 34 2 2 2
You have 5 arguments.
argv[ 0 ] = args.py
argv[ 1 ] = 34
argv[ 2 ] = 2
argv[ 3 ] = 2
argv[ 4 ] = 2
Это работает как в MS Windows, так и в Unix.
Во-вторых, вы можете спросить: «Как получить хорошие аргументы?
MS Windows или --help в Linux? "
Ну, есть три варианта, которые пытаются сделать то, что вы хотите. Два, optparse и getopt уже находятся в стандартной библиотеке, а argparse уже в пути. Все три из них - библиотеки, которые начинаются с массива строк sys.argv, описания аргументов командной строки и возвращают какую-то структуру данных или класс, из которого
Вы можете получить варианты, которые вы имеете в виду.
- getopt выполняет минимальную работу. Он не предоставляет "/ help" или "--help".
- optparse выполняет более детальную работу. Предоставляет "/ помощь" и короткую и длинную
версии опций, например, "-v" и "--verbose".
- argparse обрабатывает кухонную раковину, включая «/ help», короткие и длинные команды,
а также структуры подкоманд, как вы видите в управлении исходным кодом "git add ....", и
позиционные аргументы.
По мере того, как вы переходите к более сложному синтаксическому анализу, вам нужно предоставить парсеру больше подробностей о том, какими должны быть аргументы командной строки. Например, вам нужно передать длинный письменный
описание аргумента, если вы хотите, чтобы аргумент --help его напечатал.
В-третьих, вы можете попросить инструмент, который просто работает с опциями из команды
строка, переменные окружения и файлы конфигурации. Python в настоящее время имеет отдельные инструменты
для каждого из них. Возможно, я напишу единый, Вам понадобится:
- Аргументы командной строки, проанализированные argparse, или getopt, и т. Д.
- Переменные среды, от os.environ []
- Конфигурационные файлы из ConfigFile или plistlib и т. Д.
и составить свой собственный ответ на вопрос "какие настройки"?
Надеюсь, что это полностью отвечает на ваши вопросы