gpt4 book ai didi

python - 当 cp 没有时,为什么 shutil.copy() 会引发权限异常?

转载 作者:IT老高 更新时间:2023-10-28 20:26:30 24 4
gpt4 key购买 nike

shutil.copy() 引发权限错误:

Traceback (most recent call last):
File "copy-test.py", line 3, in <module>
shutil.copy('src/images/ajax-loader-000000-e3e3e3.gif', 'bin/styles/blacktie/images')
File "/usr/lib/python2.7/shutil.py", line 118, in copy
copymode(src, dst)
File "/usr/lib/python2.7/shutil.py", line 91, in copymode
os.chmod(dst, mode)
OSError: [Errno 1] Operation not permitted: 'bin/styles/blacktie/images/ajax-loader-000000-e3e3e3.gif'

复制测试.py:

import shutil

shutil.copy('src/images/ajax-loader-000000-e3e3e3.gif', 'bin/styles/blacktie/images')

我正在从命令行运行 copy-test.py:

python copy-test.py

但是从命令行对同一文件运行 cp 到同一目的地不会导致错误。为什么?

最佳答案

失败的操作是chmod,而不是副本本身:

  File "/usr/lib/python2.7/shutil.py", line 91, in copymode
os.chmod(dst, mode)
OSError: [Errno 1] Operation not permitted: 'bin/styles/blacktie/images/ajax-loader-000000-e3e3e3.gif'

这表明该文件已经存在并且由另一个用户拥有。

shutil.copy被指定为复制权限位。如果您只想复制文件内容,请使用 shutil.copyfile(src, dst)shutil.copyfile(src, os.path.join(dst, os.path. basename(src))) 如果 dst 是一个目录。

一个与 dst 一起工作的函数,无论是文件还是目录,并且不复制权限位:

def copy(src, dst):
if os.path.isdir(dst):
dst = os.path.join(dst, os.path.basename(src))
shutil.copyfile(src, dst)

关于python - 当 cp 没有时,为什么 shutil.copy() 会引发权限异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11835833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com