[英]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.