使用shutil.copyfile我得到一个Python IO错误:[错误13]许可被拒绝:(usi

2019-06-25 23:04发布

我有使用shutil.copyfile一些Python代码:

import os
import shutil

src='C:\Documents and Settings\user\Desktop\FilesPy'
des='C:\Documents and Settings\user\Desktop\\tryPy\Output'

x=os.listdir(src)
a=os.path.join(src,x[1])

shutil.copyfile(a,des)
print a

它给了我一个错误:

IOError: [Errno 13] Permission denied: 'C:\\Documents and Settings\\user\\Desktop\\tryPy\\Output'

为什么不我有权复制文件?

Answer 1:

从文档的shutil.copyfile

该文件名为src的内容(没有元数据)复制到文件名为DST。 DST必须是完整的目标文件名; 看shutil.copy()用于接受目标目录路径的副本。 如果SRC和DST是相同的文件,出现错误。 目标位置必须是可写的; 否则,一个IOError将引发异常。 如果DST已经存在,它会被替换。 特殊的文件,如字符或块的装置和配管不能与这个功能被复制。 SRC和DST是给出字符串的路径名。

所以我想,你需要要么使用shutil.copy或添加的文件名来des

des = os.path.join(des, x[1])


Answer 2:

我建议你还是用shutil.copyfile,而不是如果你能shutil.copy。

随着shutil.copyfile,你必须要考虑的元数据,如写作许可。



Answer 3:

我尝试了所有的东西在这里,但我的代码的问题是关于目标文件夹的权限。 我创造了我自己的函数用于创建目录,

def mkdirs(newdir,mode=777):
    try:
        os.makedirs(newdir, mode)
    except OSError as err:
        return err

取而代之的777,后来我用“0o777”八进制值,后来使用shutil.copyfile(target_file,dest_file)和它的工作!

希望这可以帮助别人,谁是第一个创建的目录,然后将其复制的文件。



文章来源: using shutil.copyfile I get a Python IOError: [Errno 13] Permission denied: