【发布时间】:2018-03-30 15:12:50
【问题描述】:
此代码假设您对我的桌面进行排序,路径 =/Users/nicolas/Desktop/prova/ 如果目标文件夹不存在并且程序创建它,它可以正常工作, 否则,如果已经有一个同名的文件夹,当他尝试移动文件时会出错并显示
完整输出:
.DS_Store nltks PNG 舍姆.png Schermata 2018-03-28 alle 11.07.13.png DS_Store nltks PNG PNG 回溯(最近一次通话最后): 文件“/Users/nicolas/Desktop/tts/work in progress/sorting machine.py”,第 16 行,在 shutil.move(path+names[x],path+currentexp) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py”,第 292 行,在移动中 引发错误,“目标路径 '%s' 已存在”% real_dst shutil.Error:目标路径“/Users/nicolas/Desktop/prova/png/Scherm.png”已经存在 iMac:w
但我没有任何带有 ds_store estension 的文件,并且“nltk”只是一个不应移动的文件夹。
程序
import os
import shutil
path = "/Users/nicolas/Desktop/prova/"
names = os.listdir(path)
for x in range (0,len(names)):
print names[x]
for x in range (0,len(names)):
exp = names[x].split(".")
currentexp = exp[-1]
print (currentexp)
if os.path.exists(path+currentexp):
shutil.move(os.path.join(path, names[x]), os.path.join(path,currentexp))
else:
os.makedirs(path+currentexp)
shutil.move(os.path.join(path, names[x]), os.path.join(path,currentexp))
# if names[x] not in os.path.exists(path+currentexp):
# shutil.move(path+names[x],path+curentexp)
感谢您的帮助
【问题讨论】:
-
如果目标是现有目录,则将 src 移动到该目录中。如果目标已经存在但不是一个目录,它可能会根据 os.rename() 语义被覆盖:如果图像存在于目标目录中,
shutil.move将失败。您必须先将其删除。 -
与排序无关。
标签: python-3.x sorting shutil