У меня есть функция 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(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
Как вы можете видеть, что они все еще пишут, даже если они существуют в файле.
Вы, вероятно, обработку новой строки неправильно. Попробуйте 'print >> outfile, folder' (тот же для inf) вместо' .write() '. – shx2