[英]Batch extract and rename csv files from multiple folders - Python
我在一個目錄中有350個文件夾,其中所有文件夾都包含兩個名為“證書”和“建議”的csv文件。 我想將每個“ certificates.csv”文件移動到一個新文件夾中,還要在此過程中更改這些.csv文件的名稱,添加索引號作為后綴,這樣它們就不會彼此覆蓋,即“ certificates1”,“ certificate2“ ....” certificates350“等。
嘗試將所有文件移動到一個文件夾時,我設法做到了:
import os
import shutil
src_dir = "C:/IN"
dst_dir = "C:/OUT"
for root, dirs, files in os.walk(src_dir):
for f in files:
if f.endswith('.csv'):
shutil.copy(os.path.join(root,f), dst_dir)
但是,所有操作都是在文件中相互覆蓋,因為它們都具有相同的名稱-“ certificates.csv”
只需檢查文件是否存在並增加一個計數器,直到文件名可用即可:
for root, dirs, files in os.walk(src_dir):
for f in files:
if f.endswith('.csv'):
index = 0
while True:
new_path = os.path.join(dst_dir, str(index) + f)
if os.path.isfile(new_path):
index += 1
continue
shutil.copy(os.path.join(root, f), new_path)
break
如果要使用后綴而不是文件的前綴,則應從擴展名中拆分名稱,添加數字,然后再次加入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.