【问题标题】:Error 5 : Acces is denied when moving files in python错误 5:在 python 中移动文件时访问被拒绝
【发布时间】:2014-07-25 10:58:57
【问题描述】:

我已经在一个程序上工作了几天,从昨晚开始我就遇到了一个错误。我已经在这里查看了其他问题,但似乎没有一个有效。 我正在使用shutil将文件从一个驱动器移动到另一个驱动器,一开始它可以工作,但现在它开始说这个错误:

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

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:'

这是我的代码 sn-p。

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'

【问题讨论】:

标签: python


【解决方案1】:

您是要从E: 或驱动器本身移动文件吗? :-)

检查E:驱动器是否为空,如果是则表示没有东西可以移动。如果要移动文件而不是驱动器,请使用通配符。

提示:E:\*.*

更新:

您引用的异常中的 Shutil.py 的 Linu 82 似乎很简单 open syscall:

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

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

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

【讨论】:

  • 我要搬家了,有文件,手动我可以把所有的东西都搬进去。这就是为什么我真的不明白
  • @user2340383 按照 John 的回答,尝试在驱动器名称后使用通配符 *
  • 我无法访问这样的 Windows 机器,所以我只能推测:shutil.move(src) 试图移动 'E:' 路径,因为这是你给它的。如果里面有文件,它可能已经移动了这些文件。但是现在它是空的,它试图移动'E:',显然它不能移动驱动器本身。因此错误。试试像 "E:\*.*'
  • 明确地说,我想从 E 中移动文件,但我认为它会移动文件,然后尝试移动到驱动器本身,但这显然行不通,我似乎无法弄清楚通配符,它​​只是增加了更多的错误xD
  • 抱歉所有这些问题,但是如果我将 src 更改为 src = "E:*.*",它说这是一个无效的文件名(IOError: [Errno 22] invalid mode ('rb' ) 或文件名:'E:\*.*')
【解决方案2】:

请检查E:\ 的权限。

错误显示,运行此代码 sn-p 的用户没有E 驱动器的权限。

【讨论】:

  • 我要搬家了,有文件,手动我可以把所有的东西都搬进去。这就是为什么我不明白的原因:/
猜你喜欢
  • 1970-01-01
  • 2017-02-24
  • 2013-06-06
  • 2011-03-01
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
相关资源
最近更新 更多