Python 移动文件时出错
我正试图编写一个代码,将下载文件夹中的文件移动到其他指定文件夹,但我不断出错。这是我的密码Python 移动文件时出错,python,file,python-3.x,Python,File,Python 3.x,我正试图编写一个代码,将下载文件夹中的文件移动到其他指定文件夹,但我不断出错。这是我的密码 import os import shutil series = [] for i in os.listdir('C:\\Users\\Mike\\Downloads\\Video'): if ('.mp4') in i: series.append(i) for j in series: if 'Thrones' in j: shutil.move(j,
import os
import shutil
series = []
for i in os.listdir('C:\\Users\\Mike\\Downloads\\Video'):
if ('.mp4') in i:
series.append(i)
for j in series:
if 'Thrones' in j:
shutil.move(j,'C:\\Users\\Mike\\Desktop\\')
我一直在犯这个错误
Traceback (most recent call last):
File "C:/Users/Mike/Downloads/Video/Arrange.py", line 70, in <module>
Series(series)
File "C:/Users/Mike/Downloads/Video/Arrange.py", line 48, in Series
shutil.move(serie, 'C:\\Users\\Mike\\Desktop\\Movies\\Series\\Lost\\s2\\')
File "C:\Users\Mike\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 536, in move
raise Error("Destination path '%s' already exists" % real_dst)
shutil.Error: Destination path 'C:\Users\Mike\Desktop\Movies\Series\Lost\s2\lost - s02e08 (o2tvseries.com).mp4' already exists
>>>
回溯(最近一次呼叫最后一次):
文件“C:/Users/Mike/Downloads/Video/Arrange.py”,第70行,在
系列(系列)
文件“C:/Users/Mike/Downloads/Video/Arrange.py”,第48行,串联
shutil.move(系列,'C:\\Users\\Mike\\Desktop\\Movies\\Series\\Lost\\s2\\)
文件“C:\Users\Mike\AppData\Local\Programs\Python\Python35\lib\shutil.py”,第536行,在move中
引发错误(“目标路径“%s”已存在”%realdst)
shutil.Error:目标路径“C:\Users\Mike\Desktop\Movies\Series\Lost\s2\Lost-s02e08(o2tvseries.com).mp4”已存在
>>>
但是文件实际上是移动的。如何移动文件而不每次都出现此错误?您遇到的错误是Windows平台特有的。您正在使用
shutil.move
,它在引擎盖下使用os.rename
。发件人:
在Windows上,如果dst已经存在,即使是文件,也会引发OSError
您可以在移动文件之前检查文件是否存在于目标中,具体取决于您想要实现的目标:
1) 不要覆盖目标,只需从源中删除文件2) 首先从源中删除文件并覆盖目标 您可以在下面找到解决方案2的实施)
import os
for name in series:
if 'Thrones' in name:
if not os.path.isfile(name):
shutil.move(name, 'C:\\Users\\Mike\\Desktop\\')
else:
os.remove(name)