覆盖文件或追加
问题描述:
需要一个函数,如果文件不存在,它将写入一个文件。 覆盖文件,如果它确实存在,但保存的原始或incriments新文件的1.覆盖文件或追加
命名格式是yyyymmdd,所以如果存在它会创建一个名为yyymmdd-v2或类似的东西。
这是我目前的。
def write_diff_file(x):
from datetime import datetime
datestring = datetime.strftime(datetime.now(), '%Y_%m_%d')
try:
with open("./%s" % 'filediff_' + datestring + '.txt', 'a') as f:
line = str(x).replace("archive\\", "")
f.write(line)
f.write("\n")
f.name
#print "Comparison File Written"
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
print "Error in write_diff_file function"
答
您想检查文件是否存在,如果文件名已经存在,请修改文件名。像这样的东西应该工作:
import os
from datetime import datetime
datestring = datetime.strftime(datetime.now(), '%Y_%m_%d')
filename = 'filediff_' + datestring + '.txt'
filenb = 1
while os.path.exists(filename):
filenb += 1
filename = 'filediff_{0}_v{1}.txt'.format(datestring, filenb)
with open(filename, 'w') as f:
....
你遇到什么问题? – MooingRawr
所以现在它会写入当前文件。但是,如果有人运行程序两次,我想创建另一个文件,而不是一次又一次地追加同一个文件。我发现它必须追加,因为我一行一行地写。 – NineTail