我已经在一个项目上工作了几天,而且自从昨晚以来我一直在犯错误。我已经在这里查看了其他问题但似乎没有任何问题。 我使用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'
答案 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
驱动。