如何让Python程序接收来自UNIX终端的标准输入的参数作为输入?
例如,我想做一些像如何让Python程序接收来自UNIX终端的标准输入的参数作为输入?,python,Python,例如,我想做一些像 python DoublePendulum.py INPUT1 INPUT2 (其中,INPUT1和INPUT2在双摆锤程序中作为变量输入) 在test.py中 import sys print 'Number of arguments:', len(sys.argv), 'arguments.' print 'Argument List:', str(sys.argv) 输出 Number of arguments: 4 arguments. Argument Lis
python DoublePendulum.py INPUT1 INPUT2
(其中,INPUT1
和INPUT2
在双摆锤程序中作为变量输入)
在test.py中
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
输出
Number of arguments: 4 arguments.
Argument List: ['test.py', 'arg1', 'arg2', 'arg3']
Python还提供了帮助您解析命令行选项和参数的模块。
标准库中有以下模块:
- 该模块类似于GNU getopt李>
- 该模块提供面向对象的命令行选项解析,optparse在Python的2.7版中被弃用,取而代之的是
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
输出
Number of arguments: 4 arguments.
Argument List: ['test.py', 'arg1', 'arg2', 'arg3']
Python还提供了帮助您解析命令行选项和参数的模块。
标准库中有以下模块:
- 该模块类似于GNU getopt李>
- 该模块提供面向对象的命令行选项解析,optparse在Python的2.7版中被弃用,取而代之的是
$python test.py一二五岁左右
内部测试.py
import sys
print(sys.argv[0:1], sys.argv[1:2], sys.argv[2:3], sys.argv[3:4], sys.argv[4:5])
将作为列表输出:
将输出:作为字符串
我为返回所需参数的函数创建了此函数
def give_me_arg(n):
num = len(sys.argv)
if n >= num:
print("Only enter:>",num,'<-and are this from 0 to ',num-1,':', sys.argv)
return ''
else:
for my_var in sys.argv[n:n+1]:
return my_var
my_var=give_me_arg(3)
def give_me_arg(n):
num=len(sys.argv)
如果n>=num:
打印(“仅输入:>”,num,”$python test.py一二五岁左右
内部测试.py
import sys
print(sys.argv[0:1], sys.argv[1:2], sys.argv[2:3], sys.argv[3:4], sys.argv[4:5])
将作为列表输出:
将输出:作为字符串
我为返回所需参数的函数创建了此函数
def give_me_arg(n):
num = len(sys.argv)
if n >= num:
print("Only enter:>",num,'<-and are this from 0 to ',num-1,':', sys.argv)
return ''
else:
for my_var in sys.argv[n:n+1]:
return my_var
my_var=give_me_arg(3)
def give_me_arg(n):
num=len(sys.argv)
如果n>=num:
打印(“仅输入:>”,num,'check outsys.argv
我个人是它的粉丝,因为它允许切换/验证/etc。check outsys.argv
我个人是它的粉丝,因为它允许切换/验证/etc。optparse
从2.7开始被弃用。改为使用argparse
。optparse
从2.7开始被弃用。使用argparse
I恩斯特德。