Как я могу выполнить скрипт Python с флагом командной строки

#python-2.6

#python-2.6

Вопрос:

У меня есть этот фрагмент кода:

 of = open("oldfile")
nf = open("newfile",'w')
for line in of:
     if len(line) > 17:
             nf.write(line)

of.close()
nf.close()
  

и вместо указания 17 я хочу иметь возможность использовать переменную, помещать ее в мой каталог scripts и выполнять напрямую. Если флага нет, он может напечатать что-то вроде ‘scriptname’. Если есть флаг, как показано ниже, он выполнит код.

$ myscriptname -l 17 старый файл newfile

Комментарии:

1. Ваш вопрос немного сбивает с толку. Вы можете использовать переменные среды, аргументы командной строки, передаваемые вашему скрипту, считывать параметры из файла…

2. @khachik Ты можешь сказать мне, что, по-твоему, я говорю?

Ответ №1:

Смотрите optparse модуль для проверки флага и установки значения, или более новый (и лучший) argparse , если вы готовы использовать 2.7 . Что касается размещения этого в моем каталоге скриптов, я не совсем понимаю, чего именно вы хотите.

Комментарии:

1. У меня есть каталог в моем path, куда я помещаю сценарии оболочки, которые можно вызывать по имени. Я бы также использовал это как скрипт, как часть моей программы командной строки.

Ответ №2:

Если вы просто хотите быстрый и грязный доступ к параметрам командной строки:

 import sys
print sys.argv # <-- this is an array containing all the command line parameters
  

Если вам нужно больше контроля, вы можете использовать модуль optparse.