#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.