我希望在运行时将一些变量传递给 python
python add2values.py 123 124
然后在 python 脚本中,它将把这两个值加在一起。
或者
python add2values.py a=123 b=124
然后在 python 脚本中,它将把这两个值加在一起。
我希望在运行时将一些变量传递给 python
python add2values.py 123 124
然后在 python 脚本中,它将把这两个值加在一起。
或者
python add2values.py a=123 b=124
然后在 python 脚本中,它将把这两个值加在一起。
您可以使用sys.argv
测试.py
#!/usr/bin/env python
import sys
total = int(sys.argv[1]) + int(sys.argv[2])
print('Argument List: %s' % str(sys.argv))
print('Total : %d' % total)
运行以下命令:
$ python test.py 123 124
Argument List: ['test.py', 'arg1', 'arg2', 'arg3']
Total : 247
有几种方法可以处理命令行参数。
一个是,正如已经建议的那样sys.argv
:命令行参数中的字符串数组。如果您想对不同类型的参数执行任意操作,请使用此选项。您可以将前两个参数转换为整数并使用以下代码打印它们的总和:
import sys
n1 = sys.argv[1]
n2 = sys.argv[2]
print (int(n1) + int(n2))
当然,这不会检查用户是否输入了字符串、列表或整数,并会带来TypeError
. 但是,对于一系列命令行参数,这可能是您最好的选择 - 手动处理每种情况。
如果您的脚本/程序有固定的参数,并且您希望有更多的灵活性(短选项、长选项、帮助文本),那么值得检查optparse和argparse
(需要 Python 2.7 或更高版本)模块。下面是一些涉及这两个模块的代码片段,取自本网站上的实际问题。
import argparse
parser = argparse.ArgumentParser(description='my_program')
parser.add_argument('-verbosity', help='Verbosity', required=True)
optparse
,可用于早期版本的 Python,具有类似的语法:
from optparse import OptionParser
parser = OptionParser()
...
parser.add_option("-m", "--month", type="int",
help="Numeric value of the month",
dest="mon")
即使getopt
您更喜欢类似 C 的语法...
你可以这样做:
import sys
n1 = int(sys.argv[1])
n2 = int(sys.argv[2])
answer = n1 + n2
print answer
我认为您的意思是通过命令行参数传递参数。编码:
import sys
print int(sys.argv[1]) + int(sys.argv[2])