2017-05-04 207 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)。

相关问题