2017-05-04 206 views
0

我有一個python程序在文件夾B(遠程位置)中使用文件夾A(c:\ workspace)中的整個文件夾樹編寫zip文件。但不知道爲什麼我不能寫這個文件夾A.Errno 13權限被拒絕:使用zipf

從權限方面來說,我使用的是本地管理員帳戶,我可以從該文件夾讀取和寫入。我已經嘗試強制通過cmd以管理員權限運行,但結果相同。從文件夾權限中,作爲管理員,我在該文件夾中擁有特殊權限。

這是我壓縮整個文件夾的內容,包括子文件夾的部分:

zipf = zipfile.ZipFile(dst, 'w',zipfile.ZIP_DEFLATED) 
           for root, folders, files in os.walk(SRC): 
             print ('root> %s' %root) 
             #logging.debug('root> %s' %root) 
             print ('folders> %s' %folders) 
             #logging.debug('folders> %s' %folders) 
             print ('files> %s'%files) 
             #logging.debug('files> %s'%files) 
             for foldername in folders: 
               print ('foldername> %s' %foldername) 
               foldername_path = os.path.join (root,foldername) 
               print ('foldername_path> %s' %foldername_path) 
               zipf.write(foldername_path) 
             for filename in files: 
               print ('filename> %s' %filename) 
               filename_path = os.path.join (root,filename) 
               print ('filename_path> %s' %filename_path) 
               zipf.write(filename_path) 
           zipf.close() 

這是輸出:

根> C:\工作空間\文件夾> ['django的-rev7543 」, 'www_server']

文件> [ '的backup.log']

FOLDERNAME>的django-rev7543

foldername_path >> C:\工作區\ Django的rev7543

回溯(最近通話最後一個):

文件 「C:\腳本\ master_backup.py」,線路178,在BACKUP_FILES()

文件 「C:\腳本\ master_backup.py」,線路102,在BACKUP_FILES email_error_notification(e)中

文件 「C:\腳本\ master_backup.py」,線路176,在email_error_notification

sys.exit(1)SystemExit:1

以我的日誌文件,其中被保存的錯誤:

2017年5月4日10:46:38046根DEBUG [錯誤13]權限被拒絕: 'C:\工作空間\ django的-rev7543'

2017年5月4日10:46:38078根DEBUG不串過程中被轉化的所有參數格式化

出於測試目的我有靶該子文件夾(django- rev7543)爲zp如果我也可以在那裏寫。在這個程序中,我正在寫一個日誌文件。

畢竟,似乎我可以讀寫,但試圖zipf任何文件夾或文件時,我得到權限被拒絕。 =/

此腳本在另一臺計算機上運行時沒有問題,但沒有搞亂C:/文件夾或子文件夾。

版本:

  • 的Python 2.5。4
  • 的Windows XP SP3

更新1:

有了,我用以前的程序,用shutil.copy2我能沒有問題複製,但它只是一個文件..

+0

嘗試打開以管理員身份運行cmd,然後運行該程序或轉到該文件夾​​和安全性的屬性,然後更改登錄用戶的權限 – Exprator

+0

@Exprator在這兩種情況下您都可以移動相同的結果=/ – SipriusPT

+0

您可以移動您的程序到另一個驅動器並嘗試保存在該驅動器中,而不是在C:\驅動器中。意味着D:\中的代碼並保存在D中:\ – Exprator

回答

0

我發現在python 2.5下的zipf不壓縮空文件夾,但OSError返回這個Errno 13權限被拒絕

要使用zipf沒有任何限制,它應該至少在python 3.4中使用(沒有檢查它是否適用於3.4之前的所有版本的python 3)。

相關問題