如何检查文件是否存在,如果存在则在文件名后添加数字

2024-10-01 09:30:17 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在尝试从一个信号中创建多个样本。为此,当绘制fft时,我还将频率和振幅输出到csv文件中。但问题是我只做了一个示例,因为输出文件每次都会被覆盖。我要做的是检查文件输出.csv'已经存在,如果是的话,请在“output1.csv”“output2.csv”等行为每个新文件追加递增的数字。任何帮助都将不胜感激

    def draw_fft(self):
        self.plot_fft[0].set_data([self.freq, self.iq_fft])
        self.sp_fft.set_xlim(self.freq.min(), self.freq.max())
        self.sp_fft.set_ylim([self.iq_fft.min()-10, self.iq_fft.max()+10])
        # for debugging print(self.freq,self.iq_fft)
        freqOut = np.array(self.freq)
        amplOut = np.array(self.iq_fft)
        output = np.column_stack((freqOut.flatten(),amplOut.flatten())
        # where the file check should occur
        np.savetxt('output.csv',output,delimiter=',')

Tags: 文件csvselffftoutputnpminarray
3条回答

要检查文件是否存在,请使用os.path.isfile函数:

http://docs.python.org/2/library/os.path.html#os.path.isfile

你当然可以。不如在文件名后面附加一些信息更丰富的内容,例如当前的日期和时间。在

这样,您就不必检查文件是否存在。在

import datetime as dt 

def draw_fft(self):
    ...
    outputfilename = 'output_{}.csv'.format( dt.datetime.now().strftime('%Y%m%d%H%M%S') )
    np.savetxt(outputfilename, output, delimiter=',')
from os.path import isfile

sequence = ""
filename = "output%s.csv"

while isfile(filename % sequence):
    sequence = int(sequence or 0) + 1
filename = filename % sequence

请注意,如果另一个进程或线程试图使用相同的基名称和方法在同一目录中创建文件,则这可能会受到竞争条件的影响。在

相关问题 更多 >