Python 如果文件中尚未包含字符串,则将其写入文件
我有一个Python函数,它接收字符串并将其写入文本文件。我改变了它,所以如果它已经存在,它就不会写字符串,但它似乎根本不起作用Python 如果文件中尚未包含字符串,则将其写入文件,python,Python,我有一个Python函数,它接收字符串并将其写入文本文件。我改变了它,所以如果它已经存在,它就不会写字符串,但它似乎根本不起作用 def log_folder(folder): fname = 'folder.log' fname_exists = os.path.isfile(fname) if not fname_exists: with open(fname,'a+') as outfile: outfile.write(fo
def log_folder(folder):
fname = 'folder.log'
fname_exists = os.path.isfile(fname)
if not fname_exists:
with open(fname,'a+') as outfile:
outfile.write(folder+'\n')
else:
with open(fname,'r+') as inf:
if folder not in inf.readlines():
inf.write(folder+'\n')
文件中的预期结果是:
home/cyberbemon/20150203_220759+0000
home/cyberbemon/20150203_220759+0012
home/cyberbemon/20150203_220858+0000
我得到的是:
/home/cyberbemon/20150203_220759+0000
/home/cyberbemon/20150203_220759+0012
/home/cyberbemon/20150203_220858+0000
/home/cyberbemon/20150203_220759+0000
/home/cyberbemon/20150203_220759+0012
/home/cyberbemon/20150203_220858+0000
如您所见,它们仍在编写中,即使它们存在于文件中 您正在检查文件的任何一行是否等于文件夹。 但您正在每行中存储文件夹+“\n” 您应该更改此行:
if folder not in inf.readlines():
致:
你可能在处理新词时出错了。尝试
print>>outfile,folder
(与inf相同)而不是.write()
。
if folder+'\n' not in inf.readlines():