用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结束脚本,最后执行停止和保存的收尾工作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。