我正在使用python中的腳本來複制和重命名一堆基於csv的圖像。複製和重命名基於csv的圖像管理重複python
名爲 「原件」 的圖像文件夾是這樣的:
Alpha_1.jpg
Beta_2.jpg
以及CSV。包含:
Alfa_1.jpg 4474094_1
Beta_2.jpg 4474094_2
Beta_2.jpg 4474094_3
所以結果應該留下名爲 「newnames」 薩姆斯相似圖片的新文件夾:
4474094_1.jpg
4474094_2.jpg
4474094_3.jpg
凡4474094_2.jpg和4474094_3.jpg是相同圖片Beta_2.jpg
我有以下的代碼不能正常工作,請任何意見,我將不勝感激!
import os
import csv
import sys
import shutil
def copy_rename():
os.chdir(r"C:\Transformer-SSBI\Original")
saved_path = os.getcwd()
file_list = os.listdir(saved_path)
src_dir= r"C:\Transformer-SSBI\Originals"
dst_dir= r"C:\Transformer-SSBI\Newnames"
IDs = {}
with open (r'transformer.csv','rb') as csvfile:
Reader = csv.reader(csvfile, delimiter = ';')
for row in Reader:
IDs[row[0]] = row[1]+'.jpg'
for row in IDs:
for file_name in file_list:
if file_name in row:
oldname = shutil.copy(file_name,dst_dir)
newname = IDs[file_name]
os.rename(oldname, newname)
copy_rename()
謝謝!有用!! – NachoR
對'os.path.exists'的調用會創建競爭條件。如果只是在'try/except'語句中完成,這將更安全。 – eestrada
感謝您的有用提示,我發現類似的問題[這裏](http://stackoverflow.com/questions/1586648/race-condition-creating-folder-in-python) – Samuelliyi