Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的命令行输入_Python_Command Line_Input_Python 2.7_User Input - Fatal编程技术网

Python中的命令行输入

Python中的命令行输入,python,command-line,input,python-2.7,user-input,Python,Command Line,Input,Python 2.7,User Input,是否可以先运行程序,然后在命令行中等待用户的输入。 e、 g 关于OP的含义(即使在评论中反复出现了一些内容)一点也不清楚,但以下是对该问题可能的解释的两个答案: 用于交互式用户输入(或管道命令或重定向输入) 在Python2.x中使用raw_input,在Python3中使用input。(这些都是内置的,因此您不需要导入任何内容就可以使用它们;您只需为您的python版本使用正确的版本即可。) 例如: user_input = raw_input("Some input please: ")

是否可以先运行程序,然后在命令行中等待用户的输入。 e、 g


关于OP的含义(即使在评论中反复出现了一些内容)一点也不清楚,但以下是对该问题可能的解释的两个答案:

用于交互式用户输入(或管道命令或重定向输入) 在Python2.x中使用
raw_input
,在Python3中使用
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
(然后按enter键),它将打印
bar-baz
。下面是它的样子:

$ python foo.py
tok tiktok
Some input please: bar baz
bar baz
这里,
$
表示命令行提示符(因此您实际上不需要键入该提示符),当它请求输入时,我在键入
baz
后点击
Enter

对于命令行参数 假设您有一个名为
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://code>

仅获取输入 就这样

此外,如果您想列出输入,可以执行以下操作:

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']
您可以使用以下基本方法搜索该列表(创建该列表后):

其他: 打印“未找到”

您可以将“2”替换为“raw_input()”,如下所示:

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
example.py

希望对您有所帮助。

如果您使用的是Python 3,
raw\u input
已更改为
input

Python 3示例:

line = input('Enter a sentence:')

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


#!/usr/bin/env python-i

谢谢,但我需要命令行参数,而不是用户提示。可能吗?哦,是的。“我会改变我的答案的。”如果你退后一步,你为什么需要这个?原始输入可以传送到子进程以执行shell命令,使用readline将提供制表符完成。谢谢Mike,但是有没有一种方法可以在命令行表单中进行交互式用户输入?我不知道你的意思,除了交互式的
原始输入
。因此,您可以从命令行调用脚本,它可能会先执行一些命令,然后进入
raw\u input
行,请求您输入,然后继续。我已经更新了答案的第二部分,为您提供了一个更完整的示例。谢谢,但在命令行表单中仍然没有。这可能吗?您是否向它输入了一个类似“input.txt”的文件,并希望它从该文件中读取?您的意思是向它输入了一个文件或目录的名称?或者,您希望它为您希望程序使用的某些参数读取一个文件?我想我们被你说的“命令行表单”的意思弄糊涂了。是的,这是一个很大的帮助。谢谢你,斯波克先生。上帝保佑,没问题。如果答案是这样,请随意接受。哈哈,我要去StackOverflow!根据常见问题解答,否决票通常意味着这不是一个好问题。虽然这似乎是一个完全正确的问题,但我猜,下层选民认为这是重复的,比如说。作为一个新用户,可以随意访问meta或(在评论中)提问如何改进。这实际上非常有效,但如果能解释一下“我”是什么,那就太好了does@DantePuglisi-我是说互动
while(True):
    line = raw_input()
    print "input data: %s" % line
example.py < input.txt
line = input('Enter a sentence:')