我要做的是在我的文本文件中查找字符串“ESTABLISHED
”。如果找到,它会将整行打印到另一个txt文件newestFile
。问题是,它只查找包含字符串“ESTABLISHED
”的第一行,并将其保存到newestFile
。我希望能够复制并粘贴包含该字符串的每一行,而不仅仅是一行。
这是我的文字
Proto Recv-Q Send-Q Local Address Foreign Address (state) rxbytes txbytes
tcp4 0 0 192.168.1.6.50860 72.21.91.29.http CLOSE_WAIT 892 691
tcp4 0 0 192.168.1.6.50858 www.v.dropbox.co.https ESTABLISHED 27671 7563
tcp4 0 0 192.168.1.6.50857 162.125.17.1.https ESTABLISHED 17581 3642
和我的代码:
def script(file, newestFile):
with open(file, 'r') as r:
for line in r:
if "ESTABLISHED" in line:
with open(newestFile, "w") as output:
output.writelines(line)
答案 0 :(得分:4)
with open(newestFile, "w") as output:
output.writelines(line)
在每个循环中,您将重新创建newestFile
。
写入模式(w
)删除文件并创建新文件(如果有)。因此,每次找到ESTABLISHED
时,您的代码都会删除旧代码并创建新代码。
而不是w
使用追加(a
)模式,如果没有文件将会创建新文件,如果有文件,它只会将您的值附加到文件中。
with open(newestFile, "a") as output:
output.writelines(line)
上的文档中了解更多信息