【发布时间】:2019-08-15 01:39:08
【问题描述】:
试图编写一个脚本,在整个文件中搜索某些字符串。
2 个以上的字符串。
1) 首先搜索是检查以下两行之一:
0/RP1/CPU0 RP(Active)
或者
0/RP0/CPU0 RP(Active)
如果是“0/RP1/CPU0 RP(Active)”,则打印此消息“execute command location 0/rp1/cpu0”
如果是“0/RP0/CPU0 RP(Active)”,则打印此消息“execute command location 0/rp0/cpu0”
2) 第二次搜索是检查以下多行之一: 一)
INFO_LINE------------------: TITLE_LINE(A-Z)
State : ENABLED
b)
INFO_LINE------------------: TITLE_LINE(A-Z)
State : DISABLE
“TITLE_LINE(A-Z)”可能略有不同,但INFO_LINE 将是静态的,并且在ENABLED 或DISABLE 中相同。
如果 b) 为真,则打印“restart process on location (FROM SEARCH1).
我已经尝试过if/else/elif 语句,并且一直在使用 re.search 进行正则表达式的研究。
#!/usr/bin/python
activerp = open('sample-output.txt')
def check_active_rp():
for line in activerp:
if line.find('0/RP1/CPU0 RP(Active)'):
print("execute command location 0/rp1/cpu0")
else:
if line.find('0/RP0/CPU0 RP(Active)'):
print("execute command location 0/rp0/cpu0")
运行这个脚本 python 只会让我回到 cli 提示符,我无法进一步完成其他搜索。
CLI$ python test.py CLI$
【问题讨论】:
-
你可能应该在这里使用
regex,你也在全局范围内定义一个变量,然后在你的函数的本地范围内使用它,这是不好的做法,要么将其作为变量传递,要么在那里初始化它以避免其他可能改变该变量的东西