【发布时间】:2026-01-01 10:20:06
【问题描述】:
如何检查文件中是否存在一行?
如果文件不存在,我也想将该行写入文件。
这是我目前的尝试:
logfile = open('ip.log', 'a+')
while 1:
line = logfile.readline()
#line.replace("\n", "")
print line
if line == str(self.CLIENT_HOST):
print "Line Found Skipping"
else:
logfile.write(str(self.CLIENT_HOST)+"\n")
if not line:
print "EOF Reached"
break
print line
logfile.close()
【问题讨论】:
-
请注意,最好使用 readlines() 等内置函数并使用 for.. 语法。而(1)更容易出错。
-
你根本不应该使用while 1:它是一个幻数使用。相反,如果需要使用 while True:.
-
@Andrej:我同意。然而,仅仅出于好奇,
while 1:实际上在 Python 2 中更有效,因为True会进行查找(它不是 Python 3 中的保留字),而已知1是正确的 - 所以字节码的形成实际上并没有为while 1:创建一个块。观察,创建你的函数并比较dis.dis(func)。 -
@Chris:有趣!我记得曾经读过一次关于 True in python 的家谱,但我不知道这一点。我猜还有一个使用 Python3 的理由。
标签: python