it-swarm.com.ru

Ввод командной строки в Python

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

Run...

Process...

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

Process...
30
Viin

Совершенно не ясно, что имел в виду ФП (даже после некоторых возвратов в комментариях), но вот два ответа на возможные толкования вопроса:

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

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

Например:

user_input = raw_input("Some input please: ")

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

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

# 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, вы можете просто вызвать скрипт из командной строки, он выведет tok tiktok, а затем запросит ввод. Вы можете ввести bar baz (за которым следует ключ ввода), и он напечатает bar baz. Вот как это будет выглядеть:

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

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

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

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

$ foo.py bar baz

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

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

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

77
Mike

Просто принимая вход

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"

еще: печать "Не найдено".

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

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

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

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

example.py

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

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

example.py < input.txt

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

12
Mr_Spock

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

Пример Python 3:

line = input('Enter a sentence:')
10
Mike Helmick

Запустите ваш скрипт со следующей строки. Сначала запустится скрипт, а затем вы получите команду Python Prompt. На данный момент все переменные и функции будут доступны для интерактивного использования и вызова.

#!/usr/bin/env python -i

1
user8391127