import os
files = os.listdir()
files = [f for f in files if 'atx' in f]
num = str(len(files)) if len(files) > 0 else ''
filename = "atx{0}.csv".format(num)
with open(filename, 'w')as output:
writer = csv.writer(output)
import os
import csv
filename = "atx"
i = 0
while os.path.exists(f"{filename}{i}.csv"):
i += 1
with open(f"{filename}{i}.csv", 'w') as output:
writer = csv.writer(output)
writer.writerow([1, 2, 3]) #or whatever you want to write in the file, this line is just an example
您可以这样做,这样每个文件的名称都会有所不同,因此不会被覆盖:
您只使用一个文件名。当使用与名称
atx.csv
相同的值时,要么用w
覆盖它,要么用a
附加。在如果要创建新文件,请先检查文件是否存在。在
如果每次执行脚本时都要写入不同的文件,则需要更改文件名,否则它们将被覆盖。在
这里我使用os.path.exists()来检查磁盘上是否已经存在一个文件,并增加计数器。在
第一次运行脚本时,会得到axt0.csv,第二次是axt1.csv,依此类推。在
为你的三个文件复制这个。在
编辑
还请注意,这里我使用的是formatted string literals,这是python3.6之后提供的。如果您有早期版本的python,请使用}
"{}{:d}.csv".format(filename, i)
而不是{在评论后编辑bis
如果在脚本执行过程中,同一个文件需要更多的函数来操作,那么我想到的最简单的事情就是在函数之外打开writer并将其作为参数传递。在
^{pr2}$每次调用其中一个函数时,它都会写入同一个文件,并将输出附加到文件的底部。在
当然还有其他方法。您可能只在调用的第一个函数中检查文件名是否存在,而在其他函数中,只需使用
'a'
选项打开文件,以附加输出。在相关问题 更多 >
编程相关推荐