1. 苏葳的备忘录首页
  2. 编程

Python中shutil.copytree的权限错误问题

python  copytreePython的高级文件操作模块shutil提供了许多功能强大,使用方便的函数,比如copytree这样一个函数,然而python 2.7中的该模块也有一些问题。例如网上有文章反映该函数在不同文件系统间拷贝时会引发权限错误:”OSError: [Errno 1] Operation not permitted:目录名”。自己在实际使用这个函数时,在试图在Android的sdcard上两个目录间拷贝文件夹的时候,就出现这个错误。

检查出错之后的目录,实际上文件夹已经拷贝成功,但仍因权限警告而退出,但其它文件夹操作比如创建删除目录等,都正常。不明所以。在网上找到一检短的功能替代函数:

    def mycopytree(self,src,dst):
        _orig_copystat = shutil.copystat
        shutil.copystat = lambda x, y: x
        shutil.copytree(src, dst)
        shutil.copystat = _orig_copystat

试用,拷贝文件夹成功,不再报那个错误了。该函数据声明不是线程安全的,不过在本人程序中已经够用。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/505.html

发表评论

邮箱地址不会被公开。 必填项已用*标注