2017-03-01 18 views
0

ファイルが存在しない場合は、そのファイルを書き込む単一の関数が必要です。 ファイルが存在する場合は上書きしますが、元のファイルを保存するか、または新しいファイルを却下します。ファイルの上書きまたは追加

命名形式は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" 
+0

実行している問題は何ですか? – MooingRawr

+0

だから今は書かれているように、現在のファイルを追加します。しかし、誰かがプログラムを2回実行する場合には、同じファイルを何度も何度も何度も何度も何度も追加するのではなく、別のファイルを作成したいと考えています。私はそれが私が行ごとに書いているように追加する必要があることを知った。 – NineTail

答えて

1

あなたは、ファイルが存在するかどうかをチェックし、それがすでにない場合は、ファイル名を適応したいです。このようなものはうまくいくはずです:

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: 
    .... 
関連する問題