如何让Python程序将参数作为来自UNIX终端标准输入的输入?

时间:2012-12-11 03:47:23

标签: python

例如 - 我想做一些像......

python DoublePendulum.py INPUT1 INPUT2

(其中INPUT1和INPUT2作为DoublePendulum程序中的变量输入)。

2 个答案:

答案 0 :(得分:5)

$ python test.py arg1 arg2 arg3

在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还提供了可帮助您解析命令行选项和参数的模块。 标准库中有以下模块:

  • getopt模块类似于GNU getopt。
  • optparse模块提供了面向对象的命令行选项解析,在Python版本2.7中不推荐使用optparse argparse是替代。

答案 1 :(得分:0)

$ python test.py one two five something

在test.py中

import sys
print(sys.argv[0:1], sys.argv[1:2], sys.argv[2:3], sys.argv[3:4], sys.argv[4:5])  

将输出为列表:
[' test.py'] ['] ['两个'] ['五'] ['东西' ]

for my_var in sys.argv:
    print(my_var)

将输出:as string

test.py
一个
2个
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)