当某个单词成行重复时,用 Python 打印一些东西

时间:2021-01-28 19:31:35

标签: python python-3.x

  1. 每当“Run”这个词排成一行时,就打印“Vader”。
  2. 如果单词“Alert”在“Run”之前连续重复,则打印“skip”等于它重复的次数。

样本输入

保持警惕

为生命而奔跑

保持警惕

保持警惕

为生命而奔跑

保持警惕

保持警惕

保持警惕

为生命而奔跑

保持警惕

保持警惕

为生命而奔跑

到目前为止我的代码

sys.stdout = open("filepath/output.csv", "w")
with open("filepath/input.txt", "r") as f:
            for line in f:
                if "Run" in line:
                    print("Vader")

sys.stdout.close() 

电流输出

维德

维德

维德

维德

所需的输出

维德

跳过

维德

跳过

跳过

维德

跳过

维德

如您所见,我已经完成了第一个要求。想不通第二部分。有人可以帮助解决第 2 点吗?或者指出我正确的方向?谢谢。

1 个答案:

答案 0 :(得分:1)

迭代这些行,只要有“警报”,就增加一个计数器。如果计数器 > 1,则打印“skip”。当警报不存在时,将计数器重置为 0。

counter = 0
for line in f:
    if "Run" in line:
        print("Vader")
        counter = 0
    elif "Alert" in line:
        if counter > 1:
            prit("skip")
        counter += 1