我想从我的计算机上的本地服务器复制文件夹,使用函数shutil.copytree,我使用macOS,但今天我有问题,python总是向我显示相同的消息,“[错误1]操作不允许”,但昨天我的脚本工作没有相同的文件夹问题... 有人能告诉我什么是问题,可能发生了什么?
答案 0 :(得分:2)
“操作不允许”错误的原因可能是,当源和目标位于不同的文件系统上时,shutil.copytree(以及shutil.copy和shutil.copy2)有一些奇怪的行为。
E.g。尝试使用python2.7在ubuntu上将文件从ext3复制到ntfs卷时,我遇到了shutil.copy的问题。我刚刚使用了shutil.copyfile。
谈到shutil.copytree:看看this回答,我喜欢它 - 只需编写自己的copytree。
答案 1 :(得分:1)
我试图复制现有目录是我的猜测。
来自文档
shutil.copytree = copytree(src,dst,symlinks = False,ignore = None) 使用copy2()递归复制目录树。
The destination directory must not already exist.
请注意最后一行。
我没有要验证的MAC OS机器,但我猜测目标目录存在。以下是我的Linux机器上发生的类似错误
$ mkdir test1
$ touch test1/a
$ touch test1/b
然后在交互式翻译中
>>> from shutil import copytree
>>> copytree("test1","test2")
>>> copytree("test1","test2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/shutil.py", line 175, in copytree
os.makedirs(dst)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: 'test2'
答案 2 :(得分:1)
错误代码告诉您,您无权读取源或写入目标。您的文件和文件夹的权限设置是否更改?