当前位置: 首页 > 面试题库 >

如何使用Python的zipfile模块在ZIP文件中的文件上设置权限(属性)?

梁浩
2023-03-14
问题内容

当我从使用Pythonzipfile模块创建的ZIP文件中提取文件时,所有文件都不可写,只读等。

该文件正在Linux和Python 2.5.2下创建和提取。

据我所知,我需要ZipInfo.external_attr为每个文件设置属性,但是似乎找不到任何地方记录此文件,有人可以启发我吗?


问题答案:

这似乎可行(感谢Evan,将其放在此处以使该行符合上下文):

buffer = "path/filename.zip"  # zip filename to write (or file-like object)
name = "folder/data.txt"      # name of file inside zip 
bytes = "blah blah blah"      # contents of file inside zip

zip = zipfile.ZipFile(buffer, "w", zipfile.ZIP_DEFLATED)
info = zipfile.ZipInfo(name)
info.external_attr = 0777 << 16L # give full access to included file
zip.writestr(info, bytes)
zip.close()

我仍然希望看到一些记录此内容的信息…我发现的另一个资源是有关Zip文件格式的注释:http
:
//www.pkware.com/documents/casestudies/APPNOTE.TXT



 类似资料:
  • 问题内容: 创建用户AD帐户时,我正在使用Python创建一个新的个人文件夹。正在创建文件夹,但权限不正确。Python可以将用户添加到新创建的文件夹并更改其权限吗?我不确定从哪里开始编码。 问题答案: 您需要模块,它是pywin32的一部分。这是做您想做的事情的示例。 该示例为该文件创建了一个新的DACL并替换了旧的DACL,但是修改现有的DACL很容易。您需要做的就是从安全描述符中获取现有的D

  • 问题内容: 我正在使用拥有者设置为的Apache Web服务器。我永远都不知道文件权限的最佳做法是什么,例如,当我创建新的Laravel 5项目时。 Laravel 5要求文件夹可写。我发现了很多不同的方法可以使其正常工作,而我通常以递归方式使其成为chmod。我知道这不是最好的主意。 官方文件说: Laravel可能需要配置一些权限:Web服务器中的文件夹, 并且需要Web服务器进行写访问。 这

  • 用户在轻推上传文件时,考虑到对文件的传播有着不同的考量,因此在发送文件时也可以对文件的转发和下载权限进行设置。转发权限可选择:可转发、仅在企业内转发、不可转;下载权限可设置:可下载和不可下载。 例如,当文件为企业内的重要文件,仅希望企业内员工可见,不希望外传时,则可以设置文件为仅在企业内转发,不可下载;设置后,则该文件只能在企业内分享,文件可以支持在线预览,不可下载,并且将加上阅读者的名字和手机号

  • 本文向大家介绍Python中zipfile压缩文件模块的基本使用教程,包括了Python中zipfile压缩文件模块的基本使用教程的使用技巧和注意事项,需要的朋友参考一下 zipfile Python 中 zipfile 模块提供了对 zip 压缩文件的一系列操作。 mode的几种: 解压:r 压缩:w 追加压缩:a  压缩一个文件 创建一个压缩文件 test.zip(如果test.zip文件不存

  • 本文向大家介绍如何使用Python检查文件的权限?,包括了如何使用Python检查文件的权限?的使用技巧和注意事项,需要的朋友参考一下 您可以使用os.access(path,mode)来检查文件权限以及读取,写入和执行权限的模式。例如, 您也可以使用os.stat来获取文件或文件描述符的状态。解释非常复杂,因为它使用位掩码来标识权限。您可以在此处阅读有关此模式的信息:https : //docs

  • 问题内容: 如何在文件夹上设置777权限。 我需要将以下文件夹的权限设置为777:admin \ includes \ module_installation 我不知道如何在窗口7中的特定文件夹上设置权限777? 请帮我如何设置?我正在使用Windows 7。 问题答案: 是基于Unix的系统中的权限,对所有者,组和所有人具有完全的读/写/执行权限。通常,我们将此权限授予不需要在Web服务器上公开