Подтвердить что ты не робот

Вход в командную строку в Python

Можно ли запустить сначала программу, а затем ждать ввода пользователя в командной строке. например.

Run...

Process...

Input from the user(in command line form)...

Process...
4b9b3361

Ответ 1

Не совсем ясно, что означал OP (даже после некоторых комментариев и комментариев), но вот два ответа на возможные интерпретации вопроса:

Для интерактивного ввода пользователем (или команд с каналами или перенаправленного ввода)

Используйте raw_input в Python 2.x и input в Python 3. (Они встроены, поэтому вам не нужно импортировать что-либо для их использования; вам просто нужно использовать правильный для своего версия python.)

Например:

user_input = raw_input("Some input please: ")

Более подробную информацию можно найти здесь.

Итак, например, у вас может быть script, который выглядит как

# First, do some work, to show -- as requested -- that
# the user input doesn't need to come first.
from __future__ import print_function
var1 = 'tok'
var2 = 'tik'+var1
print(var1, var2)

# Now ask for input
user_input = raw_input("Some input please: ") # or `input("Some...` in python 3

# Now do something with the above
print(user_input)

Если вы сохранили это в foo.py, вы можете просто вызвать script из командной строки, распечатать tok tiktok, а затем запросить ввод. Вы можете ввести bar baz (за которым следует клавиша ввода) и напечатать bar baz. Вот как это будет выглядеть:

$ python foo.py
tok tiktok
Some input please: bar baz
bar baz

Здесь $ представляет приглашение командной строки (так что вы на самом деле не набираете это), и я нажимаю Enter после ввода bar baz, когда он запрашивает ввод.

Для аргументов командной строки

Предположим, что у вас есть script с именем foo.py и вы хотите вызвать его с помощью аргументов bar и baz из командной строки, например

$ foo.py bar baz

(Опять же, $ представляет приглашение командной строки.) Затем вы можете сделать это со следующим в script:

import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]

Здесь переменная arg1 будет содержать строку 'bar', а arg2 будет содержать 'baz'. Объект sys.argv - это всего лишь список, содержащий все из командной строки. Обратите внимание, что sys.argv[0] - это имя script. И если, например, вам нужен только один список всех аргументов, вы бы использовали sys.argv[1:].

Ответ 2

Только ввод ввода

the_input = raw_input("Enter input: ")

И что это.

Кроме того, если вы хотите составить список входов, вы можете сделать что-то вроде:

a = []

for x in xrange(1,10):
    a.append(raw_input("Enter Data: "))

В этом случае вам будет предложено 10 данных для хранения 9 элементов в списке.

Выход:

Enter data: 2
Enter data: 3
Enter data: 4
Enter data: 5
Enter data: 7
Enter data: 3
Enter data: 8
Enter data: 22
Enter data: 5
>>> a
['2', '3', '4', '5', '7', '3', '8', '22', '5']

Вы можете искать в этом списке основной способ с чем-то вроде (после создания этого списка):

if '2' in a:
    print "Found"

еще:   print "Не найден."

Вы можете заменить "2" на "raw_input()" следующим образом:

if raw_input("Search for: ") in a:
    print "Found"
else: 
    print "Not found"

Получение исходных данных из входного файла через интерфейс командной строки

Если вы хотите взять ввод из файла, который вы кормите через командную строку (что обычно необходимо для выполнения кодовых проблем для соревнований, таких как Joke Google Code или ACM/IBM ICPC):

example.py

while(True):
    line = raw_input()
    print "input data: %s" % line

В интерфейсе командной строки:

example.py < input.txt

Надеюсь, что это поможет.

Ответ 3

Если вы используете Python 3, raw_input изменился на input

Пример Python 3:

line = input('Enter a sentence:')

Ответ 4

Запустите script со следующей строкой. Сначала будет запущен script, после чего вы получите командную строку python. В этот момент все переменные и функции будут доступны для интерактивного использования и вызовов.

#!/usr/bin/env python -i