Python 如何使程序在不将.py文件放在源位置的情况下移动文件
我编写这个程序是为了将视频从下载文件夹移动到不同的目标文件夹Python 如何使程序在不将.py文件放在源位置的情况下移动文件,python,file,python-3.x,Python,File,Python 3.x,我编写这个程序是为了将视频从下载文件夹移动到不同的目标文件夹 import os import shutil import sys folder = [] highlight = ['highlights','goals','skills'] comedy_word = ['comedy', 'acapella','seyilaw','basketmouth','basket mouth','bovi','gordons','buchi','rhythm unplugged','elenu','
import os
import shutil
import sys
folder = []
highlight = ['highlights','goals','skills']
comedy_word = ['comedy', 'acapella','seyilaw','basketmouth','basket mouth','bovi','gordons','buchi','rhythm unplugged','elenu','seyi law','akpororo','emmaohmygod','klint','shakara','funnybone','igodye','i go die','i go dye','igodye','whalemouth','whale mouth','daniel']
series_word = ['lost', 'thrones', 'vampire', 'originals', 'ship', '']
grub_word = ['programming', 'python', 'linux','exploit','hack']
for i in os.listdir('C:\\Users\\Afro\\Downloads\\Video'):
folder.append(i.lower())
def tv_series(series):
for serie in series:
if 'ship' in serie:
shutil.move(serie, 'C:\\Users\\Afro\\Desktop\\Movies\\Series\\The Last Ship\\The Last Ship 3\\' )
print(serie[:-3] +': Moved!')
elif 'lost' in serie:
shutil.move(serie, 'C:\\Users\\Afro\\Desktop\\Movies\\Series\\Lost\\s2\\' )
print(serie[:-3] +': Moved!')
文件名为arrange.py,当arrange.py不在“C:\Users\Afro\Downloads\Video”文件夹中时,程序会抛出filenotfound错误。可以让程序在任何文件夹中运行吗?
谢谢
这是它抛出的错误
Traceback (most recent call last):
File "C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 538, in move
os.rename(src, real_dst)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'lost - s02e08 (o2tvseries.com).mp4' -> 'C:\\Users\\Afro\\Desktop\\Movies\\Series\\Lost\\s2\\lost - s02e08 (o2tvseries.com).mp4'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Afro\Desktop\Arrange.py", line 77, in <module>
start(folder)
File "C:\Users\Afro\Desktop\Arrange.py", line 65, in start
tv_series(folder)
File "C:\Users\Afro\Desktop\Arrange.py", line 22, in tv_series
shutil.move(serie, 'C:\\Users\\Afro\\Desktop\\Movies\\Series\\Lost\\s2\\' )
File "C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 552, in move
copy_function(src, real_dst)
File "C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 251, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py", line 114, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 'lost - s02e08 (o2tvseries.com).mp4'
回溯(最近一次呼叫最后一次):
文件“C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py”,第538行,在move中
重命名(src,realdst)
FileNotFoundError:[WinError 2]系统找不到指定的文件:“lost-s02e08(o2tvseries.com).mp4'->”C:\\Users\\Afro\\Desktop\\Movies\\Series\\lost\\s2\\lost-s02e08(o2tvseries.com).mp4”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\Afro\Desktop\Arrange.py”,第77行,在
开始(文件夹)
文件“C:\Users\Afro\Desktop\Arrange.py”,第65行,开始
电视剧(文件夹)
电视剧第22行的文件“C:\Users\Afro\Desktop\Arrange.py”
shutil.move(系列,'C:\\Users\\Afro\\Desktop\\Movies\\Series\\Lost\\s2\\)
文件“C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py”,第552行,在move中
复制_函数(src、real_-dst)
文件“C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py”,第251行,copy2
复制文件(src、dst、follow_symlinks=follow_symlinks)
copyfile中的文件“C:\Users\Afro\AppData\Local\Programs\Python\Python35\lib\shutil.py”,第114行
开放式(src,'rb')作为fsrc:
FileNotFoundError:[Errno 2]没有这样的文件或目录:'lost-s02e08(o2tvseries.com).mp4'
您调用了shutil.move
错误地指定了参考点。在收集文件的循环中,应该使用os.path.join('C:\\Users\\Afro\\Downloads\\Video',i)
并将其放在列表中。否则它都是相对路径,因此出现FileNotFound
错误
您还可以更改工作目录。这将使脚本的行为就像它在不同的文件夹中一样。这可能会产生一些意想不到的后果,所以要小心
希望这有帮助 您的文件未找到错误是针对
arrange.py
?或者它是由arrange.py
生成的?这很有帮助,我很感激