2013-12-17 43 views
0

程序运行时,我的程序总是覆盖现有的CSV文件夹。我怎样才能创建一个不被覆盖的CSV文件?CSV文件夹总是被覆盖

例如:它会检查目录,如果找到这样的文件TabulatedStats.csv它将创建一个TabulatedStats02.csv,TabulatedStats03.csv等与原始文件不同。

这是我的尝试:

try: 
    newDirRH = 'C:\AGM' 
    newfile = newDirRH + "/TabulatedStats.csv" 
    text_file = open(newfile, "w") 
    x = stringText 
    text_file.write(x) 
    text_file.close() 
except: 
    tkMessageBox.showinfo(title="New Excel Created", message="New TabulatedStats1.csv is created") 
    newfile = newDirRH + "/TabulatedStats1.csv" 
    text_file = open(newfile, "w") 
    x = stringText 
    text_file.write(x) 
    text_file.close() 
    pass 

回答

1

您可以使用os.path模块检查文件是否存在。

filename = 'path/to/file{0:05}.ext' 
n = 0 
while os.path.exists(filename.format(n)): 
    n += 1 
print(filename.format(n)) 
+1

这是如何很奇怪?你可以通过改变上面的'5'来调整0的数量。可能想查看[字符串格式](http://docs.python.org/3.3/library/string.html#formatstrings)语法。 – kalhartt

0

你在写模式打开文件。这将始终创建一个新文件。如果您以追加模式打开文件,则可以添加新内容而不会覆盖现有内容。

text_file = open(newfile, "a")