2015-09-04 325 views
0

我要複製從我的電腦的一些文件移動到我的USB,但是,當我運行它,它說:我如何運行Python代碼擁有管理員權限

WindowsError: [Error 5] Access denied: 'F:\\'

我如何使用管理員權限在python中避免這個錯誤。 另外,這裏是代碼:

import os 
import shutil 
from os import walk 

ruta='C:\\' 
final='F:\\' 
for (path,ficheros,archivos) in walk(ruta): 
    for i in archivos: 
     shutil.copytree(ruta,final) 
    for i in ficheros: 
     shutil.copytree(ruta,final) 
+5

你是如何運行的代碼?你有沒有試過右鍵單擊 - >以管理員身份運行? – jonrsharpe

回答

0

幾點需要注意:

  1. shutil.copytree()將已經執行遞歸文件副本。沒有必要使用os.walk來獲取每個單獨的文件。以下是所有需要:

    shutil.copytree('C:\\', 'F:\\')

  2. 試圖整個的C:驅動器複製到USB在某些時候可能會失敗,因爲一些文件和文件夾將不能夠複製。選擇某些文件夾會更好。

  3. 如果您嘗試定位您的USB記憶棒的根文件夾,你會得到Access denied錯誤。您還需要確保目標目錄不存在。請嘗試以下操作:

    shutil.copytree('C:\\', 'F:\\c_drive')

  4. 最後,做這樣一個完整的副本可能會需要很長的時間,而且不會有反饋,它是如何快速進展。您使用os.walk想法是通過允許您將文件在每次只複製解決這個問題,但是代碼需要固定。

1

最簡單的解決方案就是以管理員身份啓動Python進程。取決於你如何啓動腳本,有不同的方法來做到這一點。最簡單的解決方案是以管理員身份啓動控制檯,然後從那裏運行Python命令。

如果你想要的東西雙擊,你也可以創建一個快捷方式,並從上下文菜單中選擇「以管理員身份運行」運行它(右鍵菜單)。

否則,你也可以讓腳本要求提升的權限in some not-so-simple way

相關問題