35

是否可以先运行程序然后等待用户在命令行中输入。例如

Run...

Process...

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

Process...
4

4 回答 4

87

完全不清楚 OP 的含义(即使在评论中反复讨论之后),但这里有两个对问题可能解释的答案:

用于交互式用户输入(或管道命令或重定向输入)

raw_input在 Python 2.x 和Python 3 中使用input。(这些是内置的,因此您无需导入任何内容即可使用它们;您只需为您的 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,并希望使用参数barbaz从命令行调用它,例如

$ 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:].

于 2013-04-23T21:58:10.913 回答
13

只接受输入

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"

否则:打印“未找到”。

您可以像这样用“raw_input()”替换“2”:

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

通过命令行界面从输入文件中获取原始数据

如果您想从通过命令行提供的文件中获取输入(这通常是您在为比赛做代码问题时需要的,例如 Google Code Jam 或 ACM/IBM ICPC):

例子.py

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

在命令行界面中:

example.py < input.txt

希望有帮助。

于 2013-04-23T22:01:10.140 回答
12

如果您使用的是 Python 3,raw_input则已更改为input

Python 3 示例:

line = input('Enter a sentence:')
于 2013-04-23T23:04:18.550 回答
1

使用以下行开始您的脚本。该脚本将首先运行,然后您将获得 python 命令提示符。此时,所有变量和函数都可用于交互使用和调用。

#!/usr/bin/env python -i

于 2017-07-31T00:32:29.450 回答