运行python脚本时传入参数

python实现类似于sh tools.sh start效果. 使用sys.argv最简单的方式如下:

1
2
3
4
def utils1():
print(sys.argv[1])
if __name__ == '__main__':
utils1()

运行python testtmp.py start得到输出start. 当然根据日常使用情况,写的完整一些就是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class UtilClass:
def __init__(self, argv=None):
self.args = argv
def prt(self):
try:
rec = self.args[1]
except IndexError:
rec = 'help'
if rec == 'start':
print('do start action')
elif rec == 'stop':
print('do stop action')
elif rec == 'help':
print('print help info')
else:
print('Unknown command:', rec)
def utildef(args=None):
util = UtilClass(args)
util.prt()
def utils():
utildef(sys.argv)
if __name__ == '__main__':
utils()

实现后的效果为:

1
2
3
4
5
6
7
8
D:\pyreadspace\justtest>python testtmp.py start
do start action
D:\pyreadspace\justtest>python testtmp.py stop
do stop action
D:\pyreadspace\justtest>python testtmp.py
print help info
D:\pyreadspace\justtest>python testtmp.py errorarg
Unknown command: errorarg