1. 程式人生 > 程式設計 >Python如何避免檔案同名產生覆蓋

Python如何避免檔案同名產生覆蓋

在一些不多的資料下載和生成的時候,我們傾向於直接儲存為檔案,當我們修改某些引數後再一次執行時,之前執行時生成的檔案就被覆蓋了。為了解決這個問題,這裡提供幾個解決方案。

1. 判斷檔案是否存在;

2. 判斷是否帶有”0)“這種數字帶括號的格式;

3. 檔名新增”(0),(1),(2)….“之類的編號。

以下是程式碼:

import os
import re
 
 
def auto_save_file(path):
  directory,file_name = os.path.split(path)
  while os.path.isfile(path):
    pattern = '(\d+)\)\.'
    if re.search(pattern,file_name) is None:
      file_name = file_name.replace('.','(0).')
    else:
      current_number = int(re.findall(pattern,file_name)[-1])
      new_number = current_number + 1
      file_name = file_name.replace(f'({current_number}).',f'({new_number}).')
    path = os.path.join(directory + os.sep + file_name)
  return path

如果使用如下建立檔案的程式碼測試:

path = r'D:\test.txt'
for i in range(10):
  with open(auto_save_file(path),'w') as f:
    f.write('This is a test!')

結果如下:

Python如何避免檔案同名產生覆蓋

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。