2017-07-28 7 views
0

私は、次のようなプログラムを作成しようとしています: コピー&ディレクトリを貼り付けて配置し、その内容を新しい場所に入れます。私は私のコードは、このために右であるとは思わない、私はそれだけでファイル転送(ファイナンスあり)

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' 
+1

そのファイルを移動する権限はありますか? – Makoto

+0

私はドメイン管理者であり、これを実行しているアカウントはローカル管理者に設定されているため、これを行う権限が必要です。 OS = Mac、誰か知りたい人を入れてください –

答えて

1

あなたが本当にしたい場合は、このエラーを取得しています全く別の場所にファイルを移動するシンプルだと思いますコピーするのではなく、移動するよりも、shutil.copytreeが良い選択です。 moveは、元のエントリを削除します。

デスクトップに表示されているすべてのファイルを保存するために、Macには常にアクセスする必要があると思われるフォルダにアクセス制御リストがあり、そのうちの1つはDesktopです。 shutil.moveはそれを削除しようとしているので、ACLを満たしており、拒否されています。

ls -ale /Users/gomcrai/Desktopのようなものを表示、あなたのACLを表示する必要があります:あなたはしたい場合は0: group:everyone deny delete

&ペーストを切るのではなくコピーやディレクトリを貼り付け、あなたはos.listdiros.walkを使用して見つけることができるのいずれかファイルとフォルダをDesktop/の中に移動し、それらのすべてを移動するか、Desktopshutil.copytreeを使用し、そのフォルダだけを残して、Desktop内のすべてを削除します。

+0

私は間違いなく私たちがinfosecポリシーを持っていることをコピーしたいと思います。ここでは、元のデバイスの情報を最低2週間保持しなければなりません。どうもありがとうございました ! –

+0

また、既にそこにデスティネーションフォルダがある場合は上書きすることもできます。デスティネーションフォルダ内にフォルダを作成するようにコードを調整しましたが、既に存在する場合は@Simon Fraser –