仅压缩目录内容,排除父目录

2023-11-23

我正在尝试压缩目录的内容,而不压缩目录本身,但是我找不到明显的方法来做到这一点,而且我对 python 非常陌生,所以它对我来说基本上是德语。 这是我正在使用的代码,它成功包含父级以及内容:

#!/usr/bin/env python
import os
import zipfile

def zipdir(path, ziph):
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file))

if __name__ == '__main__':
    zipf = zipfile.ZipFile('Testing.zip', 'w', zipfile.ZIP_DEFLATED)
    zipdir('android', zipf)
    zipf.close()

我尝试过修改它,但总是出现无法理解的错误。


write有第二个参数 - 档案中的名称,即。

ziph.write(os.path.join(root, file), file)

EDIT:

#!/usr/bin/env python
import os
import zipfile

def zipdir(path, ziph):
    length = len(path)
    
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        folder = root[length:] # path without "parent"
        for file in files:
            ziph.write(os.path.join(root, file), os.path.join(folder, file))

if __name__ == '__main__':
    zipf = zipfile.ZipFile('Testing.zip', 'w', zipfile.ZIP_DEFLATED)
    zipdir('android', zipf)
    zipf.close()

Pathlib解决方案

from pathlib import Path 

def zipdir(parent_dir : str , ziph : ZipFile) -> None:
    
    for file in Path(parent_dir).rglob('*'): # gets all child items
        ziph.write(file, file.name) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅压缩目录内容,排除父目录 的相关文章

随机推荐

  • CSS 以百分比进行翻译会导致图像模糊

    我遇到过这个非常烦人的问题 当您将图像与变换对齐时 基于百分比进行平移会导致图像稍微模糊 这仅与百分比结盟 考虑这个CSS img display block height auto max width 100 transform tran
  • 提高 ASP.NET 应用程序的性能

    如何提高 ASP NET 应用程序的性能 我应该注意哪些领域 该应用程序包括数据库连接和图像解析等 编写高性能 Web 应用程序的 10 个技巧 提高 ASP net 应用程序性能的 20 个技巧 Bye
  • 已超过最大帧长度 65536

    我有一个设置 我使用 gremlin core 库来查询远程 Janusgraph 服务器 目前数据大小适中 但将来会增加 几天前 我在客户端上看到 已超出最大帧长度 65536 错误 我的服务器 yaml 文件中 maxContentLe
  • 低功耗蓝牙 GATT 安全级别

    我正在研究与 GATT 相关的低功耗蓝牙 BLE 中可用的安全类型 更具体地说 使用指定不同安全级别 低 中 高 的 gatttool 时会执行哪些操作 我的理解是 BLE 中的安全管理器支持 4 种不同的安全属性 没有配对 与不支持中间人
  • 如何使用 React 以编程方式填充输入字段值?

    我有一个带有一些输入字段的模式 我可以轻松地通过用户键入输入来自动传递数据 使用onChange输入字段中的函数 如
  • Python 中的双端队列是如何实现的,它们什么时候比列表更糟糕?

    我最近开始研究如何在 Python 中实现各种数据结构 以便使我的代码更加高效 在研究列表和双端队列的工作原理时 我发现当我想要移位和取消移位时 可以将时间从列表中的 O n 减少到双端队列中的 O 1 列表被实现为固定长度数组 这些数组具
  • 如何迭代 Pandas 中的多索引级别?

    我经常有 MultiIndex 索引 并且我想迭代较高级别索引相等的组 它基本上看起来像 from random import choice import pandas as pd N 100 df pd DataFrame choice
  • 为什么我的调用 API 或启动协程的函数返回空值或 null 值?

    免责声明 人们在通过 facebook firebase 等请求使用异步操作时询问数据为空 不正确时 会产生大量问题 我提出这个问题的目的是为每个人提供该问题的简单答案从android中的异步操作开始 我试图从我的一项操作中获取数据 当我使
  • 将键/值从一个字典复制到另一个字典中

    我有一个包含主要数据 大致 的字典 如下所示 UID A12B4 name John email email protected 我还有另一个字典 例如 UID A12B4 other thing cats 我不清楚如何 加入 这两个字典
  • 如何使用 React Router v6 创建子路由器?

    这是我当前的 React Router 实现 const router createBrowserRouter path element
  • HTML:我可以将下标文本放在上标的正下方吗?

    我有一个单词 它既有上标又有下标 现在我把它渲染成这样word
  • 我的 Oracle 联接更新语句有什么问题?

    我正在与一个Oracle10g 数据库 我有以下两个表 T DEBTOR ID DEBTOR HEADER T ELEMENT ID ELEMENT ID DEBTOR INSURER 这两个表使用 ID DEBTOR 字段连接 仅当 HE
  • 12:00 采摘时比较时间不正确

    我正在创建一个预订系统 但我不想允许用户以开始时间 11 00 和结束时间 09 00 过去 进行预订 我使用 24 小时制 我有两个组合框 其中填充了充当开始和结束时间的字符串 09 00 10 00 11 00 12 00 13 00
  • 如何在网站上播放通知声音?

    当某个事件发生时 我希望我的网站向用户播放简短的通知声音 声音应该not打开网站时自动启动 立即 相反 它应该通过 JavaScript 按需播放 当特定事件发生时 重要的是 这也适用于较旧的浏览器 IE6 等 所以 基本上有两个问题 我应
  • Javacv:解码来自 Android 设备上的 red5 服务器的 H.264“实时”流

    这是我的问题 我已经使用 Red5 实现了一个服务器端应用程序 它发送 H 264 编码的实时流 在客户端 该流以 byte 形式接收为了在 Android 客户端上解码它 我遵循了Javacv FFmpeg图书馆 解码的代码如下 publ
  • MySQL XML 查询

    我在使用 MySQL 中的 ExtractValue 函数时遇到了一些问题 这是我的 XML 示例
  • 将数据表转换为Excel 2007(.xlsx)

    我有一个DataTable我需要将其转换为Excel 2007格式并将其另存为excel文件 xlsx 2007 谁能帮助我实现这一目标 您可以使用 OLEDB 数据提供程序 并将 Excel 视为另一个 ADO NET 数据源 以便循环遍
  • 如何使用 libssh 和 SFTP 在 C/C++ 中复制文件

    我想将文件从客户端复制到远程服务器 但我不明白如何使用 libssh 库 SFTP API 来完成此操作 情况是这样的 SSH会话打开 SFTP会话也打开 我可以使用libssh的集成功能创建一个文件并从客户端写入到服务器 我没有找到一种简
  • Google Cloud Firestore 控制台读取所有文档和费用

    我是 Firestore 的新手 所以我有一个配置文件和用户集合 在 Cloud Firestore 控制台中 当我单击数据库 gt Firestore gt 数据选项卡 gt 配置文件或 gt 用户时 控制台正在读取每个集合中的所有文档
  • 仅压缩目录内容,排除父目录

    我正在尝试压缩目录的内容 而不压缩目录本身 但是我找不到明显的方法来做到这一点 而且我对 python 非常陌生 所以它对我来说基本上是德语 这是我正在使用的代码 它成功包含父级以及内容 usr bin env python import