Вы можете пометить входы командной строки в Python? - PullRequest
0 голосов
/ 19 октября 2010

много приложений командной строки .exe, которые я использую, позволяют помечать необязательные входные данные, например, program.exe -o outputfile.txt -f F, где «-o» указывает имя необязательного выходного файла, отличное от имени по умолчанию, и где «-F 'указывает на другую опцию в скрипте.

До сих пор я использовал переменные sys.arg [] для ввода имен файлов и таких в моих скриптах на python, но это должно быть в установленном порядкевозможно ли пометить входные данные в скриптах Python?

[все это происходит потому, что я случайно ввел имя входа и имя выхода в неправильном порядке и переписал свой входной файл]

Ответы [ 2 ]

7 голосов
/ 19 октября 2010

Если вы используете Python 2.7, вы хотите использовать argparse .Если вы используете что-то более старое, вам нужен модуль optparse .

2 голосов
/ 19 октября 2010

Вы можете использовать модули, предоставляемые python, для обработки аргументов командной строки.

Однако это не устранит проблему непреднамеренной перезаписи вашего входного файла.Для этого вы можете поместить простое предупреждение, что, если выходной файл уже существует, дальнейшее выполнение перезапишет ваш выходной файл и будет ждать продолжения ввода пользователя.Таким образом, по крайней мере, вы можете дать возможность остановить обработку, если обнаружите, что имя выходного файла неверно.

Примерно так:

>>> var = raw_input('Please enter "Y" to proceed further:')
Please enter "Y" to proceed further:Y
>>> var
'Y'
>>>if var == 'Y':
...  sys.exit(0)
... 
...