我正在使用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