错误5:在python中移动文件时拒绝访问

时间:2014-07-25 10:58:58

标签: python

我已经在一个项目上工作了几天,而且自从昨晚以来我一直在犯错误。我已经在这里查看了其他问题但似乎没有任何问题。 我使用shutil将文件从1个驱动器移动到另一个驱动器,并且在开始时它可以工作,但现在它开始说这个错误:

编辑:刚刚注意到它确实移动了文件,之后它给了我错误

Traceback (most recent call last):
  File "C:\Users\DC\Desktop\Prototype\Prototype", line 9, in <module>
    shutil.move(src, dst)
  File "C:\Python27\lib\shutil.py", line 300, in move
    rmtree(src)
  File "C:\Python27\lib\shutil.py", line 256, in rmtree
    onerror(os.rmdir, path, sys.exc_info())
  File "C:\Python27\lib\shutil.py", line 254, in rmtree
    os.rmdir(path)
WindowsError: [Error 5] Access is denied: 'E:'

这是我的代码段。

import os
import time

time = time.strftime("%H%M%S")
src = "E:"
dst = "C:\Users\DC\Desktop\Data_" + str(time)

import shutil
shutil.move(src, dst)
print 'Done'

2 个答案:

答案 0 :(得分:1)

您是否尝试从E:或驱动器本身移动文件? : - )

检查E:驱动器是否为空,如果是,则表示无法移动。如果要移动文件而不是驱动器,请使用通配符。

提示:E:\*.*

更新:

你引用的异常中的shutil.py的Linu 82似乎做了简单的open系统调用:

with open(src, 'rb') as fsrc:

它似乎无法处理Windows驱动器或e:\\*.*之类的模式:

fo = open(r'D:\*.*','rb')

D:\>python testopen.py
Traceback (most recent call last):
  File "testopen.py", line 2, in <module>
    fo = open(r'D:\*.*','rb')
IOError: [Errno 22] invalid mode ('rb') or filename: 'D:\\*.*'

但是,对于您来说,一个非常简单的解决方法就足够了:os.listdir

>>> import os
>>> os.listdir('D:\\')
['Videos', 'Pictures', 'Music', 'Documents', ...]

os.listdir返回特定目录或Windows驱动器中的文件和目录列表。获得列表后,请对每个项目执行shutil.move

答案 1 :(得分:0)

请检查E:\的权限。

错误显示,运行此代码段的用户无权E驱动。