Command line input in Python
是否可以先运行程序,然后在命令行中等待用户的输入。例如
1 2 3 4 5 6 7 | Run... Process... Input from the user(in command line form)... Process... |
一点也不清楚OP的含义(即使在评论中反复提到),但以下是对问题可能解释的两个答案:
用于交互式用户输入(或管道命令或重定向输入)在python 2.x中使用
例如:
1 | user_input = raw_input("Some input please:") |
在这里可以找到更多的细节。
例如,您可能有这样一个脚本
1 2 3 4 5 6 7 8 9 10 11 12 | # 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) |
如果您将它保存在
1 2 3 4 | $ python foo.py tok tiktok Some input please: bar baz bar baz |
这里,
假设您有一个名为
1 | $ foo.py bar baz |
(同样,
1 2 3 | import sys arg1 = sys.argv[1] arg2 = sys.argv[2] |
这里,变量
只是接受输入
1 | the_input = raw_input("Enter input:") |
就是这样。
此外,如果要列出输入,可以执行以下操作:
1 2 3 4 | a = [] for x in xrange(1,10): a.append(raw_input("Enter Data:")) |
在这种情况下,将要求您10次获取数据,以便在列表中存储9个项目。
输出:
1 2 3 4 5 6 7 8 9 10 11 | 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'] |
你可以用如下的方法来搜索这个列表(在创建这个列表之后):
1 2 | if '2' in a: print"Found" |
其他:打印"未找到"。
您可以将"2"替换为"raw_input()",如下所示:
1 2 3 4 | if raw_input("Search for:") in a: print"Found" else: print"Not found" |
通过命令行接口从输入文件获取原始数据
如果您想从您通过命令行提供的文件中获取输入(这通常是您在比赛中遇到代码问题时所需要的,如Google代码堵塞或ACM/IBM ICPC):
实例
1 2 3 | while(True): line = raw_input() print"input data: %s" % line |
在命令行界面中:
1 | example.py < input.txt |
希望有帮助。
如果您使用的是python 3,那么
python 3示例:
1 | line = input('Enter a sentence:') |
用以下行开始脚本。脚本将首先运行,然后得到python命令提示。此时,所有变量和函数都可用于交互使用和调用。
哎呀!/usr/bin/env python-i