繁体   English   中英

目标已存在且为只读时shutil.copy失败

[英]shutil.copy failure when the destination already exists and is read-only

我正在使用shutil.copy将文件从一个位置复制到另一个位置。 如果目标位置中已存在具有相同名称的文件,则通常可以并覆盖。 但是,如果目标是只读的,则会抛出权限被拒绝错误。

处理这个问题最优雅的方法是什么? 是否有另一个shutil函数将处理权限问题,或者我必须检查我复制的文件的权限吗?

喜欢

import os
import shutil

def my_super_copy(what, where):
    try:
        shutil.copy(what, where)
    except IOError:
        os.chmod(where, 777) #?? still can raise exception
        shutil.copy(what, where)

您不必检查权限。 让OS告诉你有一个权限问题,然后处理它。 我假设PermissionDeniedError是你得到的异常所以你的解决方案看起来像这样。

try:
  shutil.copy(blah,blah,blah)
except PermissionDeniedError:
  <Code for whatever you want to do if there arent sufficient permissions>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM