搜索文件中没有重复的两个字符串,将粘贴剪切到文件中

时间:2017-10-02 23:21:12

标签: python python-3.x parsing scripting

我有一个配置文件。我试图让我的python代码在文本文件中搜索两个不同的字符串,复制(剪切会使我的生活变得如此简单)并将它们粘贴到一个没有重复的文本文件中。我的代码仅适用于一个字符串,每次我尝试使它完成两个字符串时,它将无法工作或仅找到包含两个字符串的行。

我做错了什么?

import sys
with open("ns-batch.bak.txt") as f:
lines = f.readlines()
lines = [l for l in lines if "10.42.88.192" 
in l]
with open("Py_parse2.txt", "w") as f1:
    f1.writelines(lines) 

1 个答案:

答案 0 :(得分:0)

好的,这是我对事物的看法。

假设您正在寻找每一行中的某些字符串,然后想要将这些行“复制”到另一个文件以查看找到这些字符串的行,例如,这应该有效:

lines = list()

with open("ns-batch.bak.txt", "r") as orig_file:
    for line in orig_file:
        if ("12.32.45.1" in line) or ("27.82.1.0" in line): #if "12.32.45.1" in line:
            lines.append(line)

with open("Py_parse2.txt", "x") as new_file:
    for line in lines:
        new_file.write(line + '\n')

根据您在每行上查找的字符串数量,您可以在我的示例代码的第5行添加或删除in语句(我还在演示的同一行上提供了一行示例代码)只需要在一行上找到一个字符串,我已注释掉了)。在这种情况下,import sys语句绝对没有任何意义;执行此工作不需要sys模块/包,因此请不要包含import语句。如果您想了解有关文件I / O的更多信息,请查看此链接(https://docs.python.org/3/tutorial/inputoutput.html?highlight=write)并转到“7.2读取和写入文件”部分。