[英]File Transfer w/ python
我正在尝试制作一个程序,该程序将:复制并粘贴目录并将其放置,并将其内容移动到新位置。 我认为我的代码不适合此操作,我认为将文件移动到完全不同的位置很简单
import os
import shutil
login = os.getlogin()
SOURCE_FILE_DEKSTOP = '/Users/%s/Desktop' % (login)
DST_FILE_WD = 'Users/%s/WorkDocs' % (login)
shutil.move(SOURCE_FILE_DEKSTOP, DST_FILE_WD)
我也收到这个错误
Traceback (most recent call last):
File "/Users/gomcrai/pythings/fileTransfer.py", line 8, in <module>
shutil.move(SOURCE_FILE_DEKSTOP, DST_FILE_WD)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib /python2.7/shutil.py", line 300, in move
rmtree(src)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 256, in rmtree
onerror(os.rmdir, path, sys.exc_info())
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 254, in rmtree
os.rmdir(path)
OSError: [Errno 13] Permission denied: '/Users/gomcrai/Desktop'
如果您真正想复制而不是移动,那么shutil.copytree是一个更好的选择。 move
将移动条目,并删除原始条目。
由于Mac在其认为应该始终存在的文件夹上具有访问控制列表,而Desktop
是其中之一,因为它用于存储台式机上所有可见的文件,因此您会收到错误消息。 由于shutil.move
尝试删除它,因此它符合ACL并且被拒绝。
ls -ale /Users/gomcrai/Desktop
应该显示ACL,显示如下: 0: group:everyone deny delete
ls -ale /Users/gomcrai/Desktop
0: group:everyone deny delete
如果您想剪切粘贴而不是复制和粘贴目录,则可以使用os.listdir
或os.walk
在Desktop/
查找文件和文件夹,然后将其全部移动,或者在Desktop
和Desktop
上使用shutil.copytree
然后删除Desktop
内的所有内容,同时不保留该文件夹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.