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

时间:2013-03-06 19:04:00

标签: python

嗨我正在尝试从信号中创建多个样本。为此,当绘制fft时,我也将频率和幅度输出到csv文件。但问题是我只制作一个样本,因为输出文件每次都会被覆盖。我想要做的是检查文件'output.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=',')

3 个答案:

答案 0 :(得分:7)

当然可以这样做。如何为文件名添加更多信息,例如此刻的日期和时间。

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

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=',')

答案 1 :(得分:3)

from os.path import isfile

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

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

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

答案 2 :(得分:1)

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

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