找到xxx后在' elif xxx中排版'只是第二次

时间:2017-05-30 02:39:41

标签: python

我想打印"结束扫描"在行尾的时候"二进制[4]:"仅出现第二次。

for line in infile:
  with open('convert-profile.txt', "a") as f1:
    if "index" in line:
        f1.write("\n"+line)
    elif "scan start time" in line:
        f1.write(line)  
    elif "binary: [4]" in line:
        f1.write(line)
    elif "binary: [4]" in line: *for the second time after the same index only*
        f1.write(line+"end scan")

是否可以通过python在if-loop中执行此操作?

infile是一个逐行信息的文本文件

index: 1
scan start time: 0.01
binary1
binary [4]: 10 2 3 7
binary2
binary [4]: 11 11 34 12
index: 2
scan start time: 0.03 ...

1 个答案:

答案 0 :(得分:3)

让外部变量跟踪文件中出现的“binary:[4]”的次数。

尝试:

cnt = 0
for line in infile:
    with open('convert-profile.txt', "a") as f1:
        if "index" in line:
            f1.write("\n"+line)
        elif "scan start time" in line:
            f1.write(line)  
        elif "binary [4]:" in line and cnt != 1:
             f1.write(line)
             cnt += 1
        elif "binary [4]:" in line and cnt == 1:
             f1.write(line+"end scan")

修改 我注意到输入文件的格式为binary [4]:,而不是代码中的binary: [4],所以我假设您打算使用前者。