我有使用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'
为什么不我有权复制文件?
从文档的shutil.copyfile
:
该文件名为src的内容(没有元数据)复制到文件名为DST。 DST必须是完整的目标文件名; 看shutil.copy()用于接受目标目录路径的副本。 如果SRC和DST是相同的文件,出现错误。 目标位置必须是可写的; 否则,一个IOError将引发异常。 如果DST已经存在,它会被替换。 特殊的文件,如字符或块的装置和配管不能与这个功能被复制。 SRC和DST是给出字符串的路径名。
所以我想,你需要要么使用shutil.copy
或添加的文件名来des
:
des = os.path.join(des, x[1])
我建议你还是用shutil.copyfile,而不是如果你能shutil.copy。
随着shutil.copyfile,你必须要考虑的元数据,如写作许可。
我尝试了所有的东西在这里,但我的代码的问题是关于目标文件夹的权限。 我创造了我自己的函数用于创建目录,
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: