Как мне получить скрипт Python, который а) может принимать пользовательский ввод, и как мне сделать его б) читать аргументы, если он запускается из командной строки?
python
input
command-line-arguments
Teifion
источник
источник
argparse
вместоoptparse
.Ответы:
Для чтения пользовательского ввода , вы можете попробовать на
cmd
модуль для легкого создания интерпретатора линии мини-команд (при помощи текстов и автодополнения) иraw_input
(input
для Python 3+) для чтения строки текста от пользователя.Входы командной строки находятся в
sys.argv
. Попробуйте это в вашем скрипте:Есть два модуля для разбора параметров командной строки:
(устарело с Python 2.7, используйтеoptparse
argparse
вместо) иgetopt
. Если вы просто хотите ввести файлы в свой скрипт, вот силаfileinput
.Библиотека ссылки Python является вашим другом.
источник
raw_input
был переименованinput
в Python 3.x - документация здесьИли для Python 3:
источник
raw_input
, это встроенная функция.raw_input
больше не доступен в Python 3.x. Ноraw_input
был переименованinput
, поэтому такая же функциональность существует.Документация об изменении
источник
import fileinput result=[] for line in fileinput.input(): result.append(line)
Лучший способ обработать аргументы командной строки - это
argparse
модуль.Используйте
raw_input()
для получения ввода пользователя. Если вы импортируете,readline module
ваши пользователи будут иметь редактирование строк и историю.источник
Будьте осторожны, чтобы не использовать
input
функцию, если вы не знаете, что делаете. В отличие отraw_input
,input
примет любое выражение Python, так что это вроде какeval
источник
Эта простая программа поможет вам понять, как вводить пользовательский ввод из командной строки и показать справку о передаче неверного аргумента.
1) Найти квадратный корень из 5
2) Передача неверного аргумента кроме числа
источник
Используйте raw_input для ввода с консоли / терминала.
если вы просто хотите аргумент командной строки, как имя файла или что-то вроде
тогда вы можете использовать sys.argv ...
sys.argv - это список, где 0 - это имя программы, поэтому в приведенном выше примере sys.argv [1] будет "file_name.txt"
Если вы хотите иметь полные параметры командной строки, используйте модуль optparse.
пэВ
источник
Если вы используете Python <2.7, вам нужен optparse , который, как объясняет документ, создаст интерфейс с аргументами командной строки, которые вызываются при запуске вашего приложения.
Однако в Python ≥2.7 функция optparse устарела и была заменена на argparse, как показано выше. Быстрый пример из документов ...
источник
Начиная с Python
3,22.7, теперь есть argparse для обработки аргументов командной строки.источник
Если это версия 3.x, просто используйте:
Например, вы хотите ввести 8:
x будет равен 8, но это будет строка, если вы не определите ее иначе.
Таким образом, вы можете использовать команду convert, например:
источник
В Python 2:
В Python 3:
источник
источник