我在将mp4文件从一个目录移动到另一个目录(Ubuntu Linux)时遇到了困难。当我在目录之间移动.py文件时,我在本文中包含的代码似乎工作得很好。我已经在谷歌上搜索了一些答案,但都无济于事。我已经找到了指向权限等的答案,并且我已经从以下urls中找到了帮助。
http://stackoverflow.com/questions/13193015/shutil-move-ioerror-errno-2-when-in-loop
http://stackoverflow.com/questions/7432197/python-recursive-find-files-and-move-to-one-destination-directory
我是python的新手,刚刚开始学习。当我运行python脚本来移动.mp4文件时,我得到了错误消息,请您帮我处理一下我包含的代码和错误消息。
sudo python defmove.py /home/iain/dwhelper /home/iain/newfolder .mp4
(我正在从defmove.py脚本所在的目录运行脚本,并且在运行defmove.py之前,我还确保了新文件夹不存在)
import os
import sys
import shutil
def movefiles(src,dest,ext):
if not os.path.isdir(dest):
os.mkdir(dest)
for root,dirs,files in os.walk(src):
for f in files:
if f.endswith(ext):
shutil.move(f,dest)
def main():
if len(sys.argv) != 4:
print 'incorrect number of paramaters'
sys.exit(1)
else:
src = sys.argv[1]
dest = sys.argv[2]
ext = sys.argv[3]
movefiles(src,dest,ext)main()
Traceback (most recent call last):
File "defmove.py", line 24, in <modeule>
main()
File "defmove.py", line 22, in main
movefiles(src,dest,ext)
File "defmove.py", line 11, in movefiles
shutil.move(f,dest)
File "/usr/lib/python2.7/shutil.py", line 301, in move
copy2(src, real_dst)
File "/usr/lib/python2.7/shutil.py", line 130, in copy2
copyfile(src,dest)
File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No suck file or directory: 'feelslike.mp4'发布于 2013-07-13 01:09:17
当为python I/O指定一个文件名时,它假定该文件位于当前目录中,或者位于其路径中的某个位置;如果该文件不在这些位置中的任何一个位置,则会生成一个IOError。因此,当您访问当前目录以外的目录中的文件时,指定该文件的路径是很重要的。
在您的代码中,使用f调用shutils.move只是为函数提供了一个文件名-指向该文件名的路径已被剥离。因此,对shutils.move的调用应该如下所示
shutil.move(os.path.join(root, f), dest)https://stackoverflow.com/questions/17619737
复制相似问题