我有一个python程序,可以在文件夹B(远程位置)中编写zip文件,其中包含文件夹a(c:\workspace)中的整个文件夹树。但不知道为什么我不能写文件夹A
从权限方面,我使用本地管理员帐户,我可以从该文件夹读写。我已经尝试通过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()
这是输出:
root> c:\workspace\ folders> ['django-rev7543', 'www_server']
files>['backup.log']
foldername> django-rev7543
foldername_path>> c:\workspace\django-rev7543
Traceback (most recent call last):
File "C:\Scripts\master_backup.py", line 178, in backup_files()
File "C:\Scripts\master_backup.py", line 102, in backup_files email_error_notification(e)
File "C:\Scripts\master_backup.py", line 176, in email_error_notification
sys.exit(1) SystemExit: 1
在保存错误的日志文件中:
2017-05-04 10:46:38,046 root DEBUG [Errno 13] Permission denied: 'c:\workspace\django-rev7543'
2017-05-04 10:46:38,078 root DEBUG not all arguments converted during string formatting
出于测试目的,我将子文件夹(django-rev7543)作为zpif,我也可以在那里编写。在这个程序中,我正在写一个日志文件。在
毕竟,似乎我可以读写,但当我试图zipf任何文件夹或文件时,我的权限被拒绝了。=/
此脚本在另一台计算机上运行时没有问题,但没有搞乱C:/folders或subfolders。在
版本:
更新1:
我以前用过的程序shutil.copy2号文件我可以毫无问题地复制,但只是一个文件。。在
我发现Python2.5下的zipf不会压缩空文件夹,但是OSError将其返回为Errno 13 Permission denied。在
为了不受任何限制地使用zipf,它至少应该在python3.4中使用(不要检查它是否适用于python3.4之前的所有版本)。在
相关问题 更多 >
编程相关推荐