python压缩文件夹下的文件及子文件夹

2023-10-31

压缩某一文件夹下的所有文件,python

import os
import zipfile

def is_child_dir(dir1, dir2):
	if dir1 == dir2:
		return True
	return dir1.startswith(dir2 + os.sep)

def is_child_in_dir(dir1, ignore):
	for d in ignore:
		if is_child_dir(dir1, d):
			return True
	return False

def do_zip_dir(dir_i, dile_o, ignore=Noe):
	if ignore is None:
		ignore = []
	zip_obj = zipfile.ZipFile(file_o, "w", zipfile.ZIP_DEFLATED)
	for dirpath, dirs, files in os.walk(dir_i):
		fpath = dirpath.replace(dir_i, '')
		for f in files:
			# 过滤掉不需要压缩的文件
			if ignore and is_child_in_dir(os.path.join(dirpath, f), ignore):
				continue
			if os.path.join(dirpath, f) != file_o:
				zip_obj.write(os.path.join(dirpath, f), os.path.join(fpath, f))
		for f in dirs:
			# 过滤掉不需要压缩的文件夹
			if ignore and is_child_in_dir(os.path.join(dirpath, f), ignore):
				continue
			zip_obj.write(os.path.join(dirpath, f), os.apth.join(fpath,f))
	zip_obj.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python压缩文件夹下的文件及子文件夹 的相关文章

  • Python 的键盘中断不会中止 Rust 函数 (PyO3)

    我有一个使用 PyO3 用 Rust 编写的 Python 库 它涉及一些昂贵的计算 单个函数调用最多需要 10 分钟 从 Python 调用时如何中止执行 Ctrl C 好像只有执行结束后才会处理 所以本质上没什么用 最小可重现示例 Ca
  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • BeautifulSoup 中的嵌套标签 - Python

    我在网站和 stackoverflow 上查看了许多示例 但找不到解决我的问题的通用解决方案 我正在处理一个非常混乱的网站 我想抓取一些数据 标记看起来像这样 table tbody tr tr tr td td td table tr t
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • html sql连接mysql数据库_HTML连接sql数据库

    怎样从HTML网页中获取SQL数据库里的数据 我现在是一名学生 第一学期快结束了 老师要CSS布局HTML小编今天和大家分享我们每个学习小组用C 做HTML是无法读取数据库的 HTML是页面前端脚本语言 要想从HTML网页中获取SQL数据库
  • GitLab在项目的环境搭建和基本的使用

    目录 gitlab 使用入门 1 导读 本教程主要讲解了GitLab在项目的环境搭建和基本的使用 可以帮助大家在企业中能够自主搭建GitLab服务 并且可以GitLab中的组 权限 项目自主操作 GitLab简介 GitLab环境搭建 Gi
  • mongo-删除重复数据

    mongo 删除重复数据 使用aggregate聚合查询重复数据 group中是查询条件 根据你的字段来聚合相同的数据 count用来统计重复出现的次数 match来过滤没有重复的数据 db getCollection 你的集合名 aggr
  • Object.assign是浅拷贝还是深拷贝?

    话不多说先举个例子 let source a 1 let target Object assign source console log target a 1 source a 2 console log source a 2 consol
  • VMware Tools 启动脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义启动脚本,请确保该脚本没有错误。您也可以提交支持请求,报告此问题。...

    第一步 sudo apt get autoremove open vm tools 第二步 sudo apt get install open vm tools desktop 然后重启 转载于 https www cnblogs com
  • qt实现简单的聊天页面(纯页面)

    我是模仿qq页面来做的 这是效果图 很简陋 基础的一些部分都比较简单 写一些对我来讲是难点或者有意思的东西吧 记录一些 1 这里的 开心 是使用painter画上去的 因为右边已经有图标了 所以不太好使用QLabel来进行绘制 QPaint
  • MacBook外接显示器设置方法(新手入门贴)

    小屏幕的MacBook MacBook Pro放在桌上长时间使用 眼睛比较累 而且 长时间低头看屏幕 易得颈椎病 绝对有损健康 配一台大屏幕的外置显示器不失为两全其美的好办法 首先 得买一台中意的大屏幕LED显示器 废话undefined
  • steam植物大战僵尸汉化补丁使用教程

    植物大战僵尸作为小时候印象最深的游戏之一 上线便收获了一大波人的喜爱与好评 仍至今日 还有许多小伙本们沉浸其中 不过steam版本并不支持简体中文语言 网络上面虽然一大堆但都是很久之前的 会出现一些黑屏的问题 所以小编此次带来了steam植
  • ILSVRC竞赛详细介绍(ImageNet Large Scale Visual Recognition Challenge)

    ILSVRC ImageNet Large Scale Visual Recognition Challenge 是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一 代表了图像领域的最高水平 ImageNet数据集是ILSVRC竞赛使用
  • QT使用ODBC连接MySQL

    本文主要讲述QT使用ODBC连接MySQL数据库的过程 第一步 下载连接工具 链接如下 https cdn mysql com Downloads Connector ODBC 8 0 mysql connector odbc 8 0 28
  • vmware17:下载安装

    1 访问vm官网下载vm17安装包 下载 VMware Workstation Pro CN 选择windows下载 下载成功后 双击装包安装 直接下一步安装 勾选接受许可条款下一步 更改安装路径 继续下一步 最后点击安装 最后等待完成输入
  • 线程的属性 —— 分离的状态(detached state)、栈地址(stack address)、栈大小(stack size)

    参考 四十二 线程 线程属性 作者 FadeFarAway 发布时间 2017 01 17 14 09 55 网址 https blog csdn net FadeFarAway article details 54576771 目录 引入
  • 科技云报道:生成式AI已成为企业新兴风险,但我们不应该因噎废食

    科技云报道原创 2023年 生成式AI技术破茧成蝶 引发了一场全球范围的数字革命 从最初的聊天 下棋开始 到医疗 金融 制造 教育 科研等 生成式AI表现出了强大的创造力和无限潜力 据不完全统计 截至今年8月底 全国已经发布了逾百个行业AI
  • cccccc

    Source code recreated from a class file by IntelliJ IDEA powered by FernFlower decompiler package com gb soa omp ccommon
  • idea找不到版本的可能性总结

    当spring boot starter parent下面的版本报红时并不是这个版本不存在 而是因为idea会默认缓存Maven本地仓库已存在的中的依赖项 只是我们引入的的父依赖版本 本地仓库中不存在 所以就报错了 解决方案就是我们清除一下
  • 【Pytorch with fastai】第 3 章 :数据伦理

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Linux 篇:Linux定时任务

    什么是crond crond是linux用来定期执行命令或指定程序任务的一种服务 安装完操作系统后 默认会启动crond任务调度服务 crond服务会定期检查系统中是否有要执行的任务 如果有要执行的任务便会自动执行该任务 crond定时任务
  • Oracle数据库DBA权限回收操作参考

    1 基本操作指令 查看当前系统 ORACLE SID linux su oracle cat etc oratab orcl oracle app oracle product 11 2 0 dbhome 1 N crm oracle ap
  • 网络层协议介绍

    网络层的功能 1 定义了基于IP协议的逻辑地址 2 链接不同的媒介类型 3 选择数据通过网络的最佳路径 IP数据包格式 数据封装的时候在网络层会封装ip地址的头部 形成ip数据包 IP数据包格式 分为20字节的固定部分 表示每个ip数 据包
  • python压缩文件夹下的文件及子文件夹

    压缩某一文件夹下的所有文件 python import os import zipfile def is child dir dir1 dir2 if dir1 dir2 return True return dir1 startswith