用python写个脚本。想要为用户提供参数输入的功能,类似“-n=...”,“-f=...”
,可以使用sys模块获取参数,正则表达式模块re解析规则。

获取参数

import sys

print(type(sys.argv),len(sys.argv),sys.argv)

for i in range(len(sys.argv)):
    if i > 0:
        param_str = sys.argv[i]
        print(param_str)

sys.argv返回一个list,可以调用len()获取它的长度,内容是执行命令的字符串按空格分开。sys.argv[0]是当前执行程序的绝对路径,所以如果后面跟了2个参数的话,注意总的长度是3,那么遍历参数字符串从位置1开始。

可以通过re模块处理,按等号“=”分隔字符串。我习惯创建一个dict去保存。字典的key就是模式,value就是参数值。

假设输入参数“-n=name -r=10”,执行以下代码:

import sys
import re
    
rule_dict = {}
for i in range(len(sys.argv)):
    if i > 0:
        params = re.split('[=]', sys.argv[i])
        rule_dict[params[0]] = params[1]
print(rule_dict)

输出:

{'-n': 'name', '-r': '10'}

接着就可以遍历字典,根据获取的模式和参数值执行对应的处理。

收尾处理

使用try except finally。在try中执行处理函数,except处理异常,finally执行收尾工作。类似如下的写法。

try:
    Monitor = monitorManage()
    if not xxx:
        record(set_time_loop)
    else:
        pass
except KeyboardInterrupt:
    print("detect key interrupt, script stopped.")
finally:
    Monitor.stop()
    Monitor.save()

except捕捉键盘中断异常,即用户按下CTRL+C结束脚本,最后执行停止和保存的收尾工作。


MorpheusDong
4 声望0 粉丝