我有一个配置文件。我试图让我的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)
答案 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读取和写入文件”部分。