首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python -我压缩了一些带有子文件夹的文件夹,但它压缩了两次。

Python是一种高级编程语言,被广泛应用于云计算、人工智能、数据分析等领域。在处理文件夹压缩时,可能会出现压缩两次的情况。这通常是因为在代码中重复执行了压缩操作。

为了解决这个问题,可以使用条件判断语句来确保只执行一次压缩操作。以下是一个示例代码:

代码语言:python
代码运行次数:0
复制
import zipfile
import os

def compress_folder(folder_path, output_path):
    if not os.path.exists(output_path):
        with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
            for root, dirs, files in os.walk(folder_path):
                for file in files:
                    file_path = os.path.join(root, file)
                    zipf.write(file_path, os.path.relpath(file_path, folder_path))
        print("文件夹压缩成功!")
    else:
        print("目标压缩文件已存在,无需再次压缩。")

# 调用函数进行文件夹压缩
compress_folder("待压缩文件夹路径", "目标压缩文件路径")

在上述代码中,首先判断目标压缩文件是否已存在,如果不存在则执行压缩操作。通过使用zipfile.ZipFile类,我们可以创建一个新的压缩文件,并使用write方法将文件夹中的文件添加到压缩文件中。os.walk函数用于遍历文件夹中的所有文件和子文件夹。

这是一个简单的文件夹压缩示例,你可以根据实际需求进行修改和扩展。如果你希望了解更多关于Python的文件处理和压缩的知识,可以参考腾讯云对象存储 COS 的相关文档:Python SDK 开发指南

请注意,以上答案仅供参考,具体实现方式可能因实际情况而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 自动化指南(繁琐工作自动化)第二版:十、组织文件

将几个文件夹内容压缩到一个 ZIP 文件中(这可以是一个简单备份系统) 所有这些无聊东西都在乞求用 Python 实现自动化。...所以 Python 忽略它。...用zipfile模块压缩文件 你可能熟悉 ZIP 文件(带有zip文件扩展名),可以保存很多其他文件压缩内容。压缩文件会减小其大小,这在通过互联网传输文件时非常有用。...、该文件夹文件夹以及该文件夹文件名。...将这些文件从它们所在任何位置复制到一个新文件夹中。 删除不需要文件 一些不需要但数量庞大文件或文件夹占据硬盘大部分空间,这种情况并不少见。

1.4K50

在线问题反馈模块实战(二十):实现文件批量导出到zip压缩包中功能

一听,这其实也是io操作一种,虽然不是很常用,但是基本想实现该需求,也是简单为此,还是基于文件流写法来逐一实现如何将批量实现文件zip压缩,如果你也遇到这个需求并且没有啥思路,不用担心,...response); 3️⃣实现exportQuestions()方法         如下是核心实现方法,具体实现思路就是,进行了两次文件压缩,具体操作就是:先是对完整个人文件夹进行分类,然后将对于文件文件添加进文件夹中...,然后遍历对每一个文件夹进行压缩,然后再将所有的压缩包存放到一个父文件夹中,接着对父文件夹进行压缩,最后将父压缩包导出即可。         ...//先将所有人截图放到同一文件夹中并压缩 questions.forEach(p -> { //文件夹命名 String...接下来,我们再检查一下,具体文件夹子个数及文件夹具体images数量,核实一下是否与数据库数据一致?经查验,都是完整导出完好无损。 正常给大家看下后台查询数据所存储数据库原本记录格式吧。

40420
  • ubuntu(乌班图)常用命令大全

    大家好,又见面是你们朋友全栈君。 安装完系统后,除了需要会用常用命令,各种软件也需要,关于Ubuntu系统常用软件安装建立一个分类,用来记录菜鸟揪心安装历程。。。...ls -alh 这样也行 ls过滤 通配符:* 即可以代替任何符号数字 使用例子如下;ls *.py 代表显示当前文件夹中名字带有.py后缀所有文件,*可以代表长度无限数值或符号。...py 代表显示当前文件夹中名字带有.py后缀所有文件,但是?...只能代表一个数值或符号 若 ls 1[1-6]5.py 代表显示当前文件夹带有.py后缀,且第一个为1,第二个为1到6数字,第三个为5 所有文件。 4. touch 创建文件 5....,自己开源一些常用python脚本,有需要欢迎star。

    3.2K10

    Python】文件选择性压缩和全压缩,一般人不告诉实用小技巧!

    但的确也不可否认,Python在自动化办公领域显著优越性也是不可小视,今天正好用到了Python对文件自动化压缩,然后就在这里记录一下。...我们在日常办公中经常会将文件进行压缩处理,然后方便发送给邮箱等,同时对文件压缩也是对文件很好一个备份处理,那么今天大灰狼就来和大家聊一聊在Python中文件压缩哪些事儿。...在Python中对文件进行压缩时,需要用到第三方模块是ZipFile模块,从这个名字就可以看出,这个模块可以说就是为文件压缩而生。...当前文件文件夹字符串列表 当前文件夹中文件字符串列表 搞清楚这三个问题,接下来就是编写代码阶段, 同在进行文件压缩时候,我们有时候希望对整个文件夹进行压缩,而有些时候我们则希望对该文件夹某一类型文件进行压缩...所以为了方便小伙伴们直接调用,将这两种情况分别写成了两个函数形式,在调用时候只需要向该函数中传入你想要压缩文件夹路径即可。

    87910

    9个必知Python操作文件文件夹方法,你知道吗

    近几年随着Python热度不断上涨,人们渐渐使用这门编程语言来进行一些自动化操作,以节省重复劳动带来效率低下,那么必定会涉及到对文件系统操作,包括文件增、删、改、查等等,今天就来介绍一下如何用...os.mkdir('文件夹名称') 当然我们有时候需要在已建文件夹下创建文件夹,例如下图 这个时候要是引用os.mkdir()方法或许会稍显繁琐,这时我们可以通过os.mkdirs()方法来实现...", "test_1_delete")) 09 创建和解压 压缩包 谈及到操作压缩包相关内容,就不得不说zipobj这个模块 创建一个压缩包 这里我们要用到是zipfile模块当中write()...zipobj.write(file) 读取压缩包当中文件信息 通过zipfile模块当中namelist()方法来实现 with zipfile.ZipFile("创建压缩包.zip", "r"...将压缩包中所有文件,都解压出来 通过zipfile模块当中extractall()方法来实现,代码如下 dst = "output" with zipfile.ZipFile("创建压缩包.

    560130

    深度对比Python中4大文件处理库(os、shutil、glob、pathlib)

    :匹配一个字符; []:匹配指定范围内字符,如[0-9]匹配数字,[a-z]匹配小写字母; 4. pathlib库 pathlib库中有一些功能超级棒,其中最喜欢下面这个功能: p.name:获取文件名...,这里就不赘述,自行下去学习。...(r"创建压缩包.zip", "w") as zipobj: for file in file_list: zipobj.write(file) 结果如下: ② 读取压缩包中文件信息...p = Path.cwd() for i in p.iterdir(): print(i) 结果如下: 「注意:」 iterdir()方法返回是直接文件或文件夹【不考虑嵌套文件夹文件...p = Path.cwd() file_list = p.glob('*.txt') for file in file_list: print(file) 结果如下: 由于需求改变,不仅想要获取直接文件信息

    5.4K31

    Python中如何使用os模块和shutil模块处理文件和文件夹

    图片os和shutil都是Python标准库中用于处理文件和文件夹模块,它们都提供许多常用文件和文件夹操作功能,但是它们使用场景和优势有所不同。...os模块提供许多操作系统相关功能,例如打开文件、读取文件、获取文件属性、创建目录、删除文件、重命名文件等。os模块提供函数通常操作单个文件或目录,但它不提供直接复制文件或目录方法。...如果需要在Python中复制文件或目录,就需要使用shutil模块。shutil模块是在os模块基础上开发,提供许多高级文件和文件夹操作功能,例如复制文件、复制目录、移动文件、移动目录等。...shutil模块比os模块更加高级、更加方便,可以用来处理一系列文件和文件夹操作,而不仅仅是单个文件或目录。同时,shutil模块也可以处理文件和目录压缩和解压缩。...只有当源文件比目标文件更新时,才复制选定文件和选定文件夹(以及所有文件夹和文件)。后续运行时,只复制更新文件和任何新添加到复制列表文件。

    1.1K20

    深度对比Python中4大文件文件夹处理库,你更pick哪一个?

    :匹配一个字符; []:匹配指定范围内字符,如[0-9]匹配数字,[a-z]匹配小写字母; 4. pathlib库 pathlib库中有一些功能超级棒,其中最喜欢下面这个功能: p.name:获取文件名...,这里就不赘述,自行下去学习。...(r"创建压缩包.zip", "w") as zipobj: for file in file_list: zipobj.write(file) 结果如下: ② 读取压缩包中文件信息...p = Path.cwd() for i in p.iterdir(): print(i) 结果如下: 「注意:」 iterdir()方法返回是直接文件或文件夹【不考虑嵌套文件夹文件...p = Path.cwd() file_list = p.glob('*.txt') for file in file_list: print(file) 结果如下: 由于需求改变,不仅想要获取直接文件信息

    1.4K160

    亲自动手写一个python库(二)

    setup.py是打包程序配置文件,需要设置一些选项。此外,setup.cfg是包含setup.py额外配置信息文件,没有用到这其中设置,所以本项目中其是空。...caafinder文件夹就是我们要写Python程序,我们要注意这个文件夹里必须有__init__.py这个文件。 ? 下面是一下setup.py一些简单配置选项,详细请参考官方文档。 ?...为了避免模块名冲突,Python又引入了按目录来组织模块方法,称为包(Package),包是一个带有__init__.py文件夹,如图中文档所示,我们有一个包caafinder,因为它级有一个_...此时在根目录出现dist文件夹,里面有name-version.tar.gz这个文件,这就是我们要发布到PyPI压缩包了。...此时在网页上就可以看到自己源代码包啦,并且可以通过使用pip install packagename,就可以使用我们自己写Python。 ?

    1.1K70

    Visual Studio配置C++中netCDF库

    而netCDF库则提供用于读取和写入 netCDF数据接口和函数——其支持多种编程语言,包括C、C++、Fortran、Python等。...在我们之前文章Anaconda配置h5py与netCDF4包方法,以及文章Python批量读取NC数据时间维信息,还有文章Python指定时间、经纬度读取NC数据中,介绍过在Python环境下配置...其中,“包含目录”配置如下图所示,即分别添加了解压缩文件夹cxx4文件夹,以及可执行文件安装路径中include文件夹。   ...但是,如果出现含有“无法解析外部符号”字样错误提示(这里当时忘记截图),那么就需要继续看本文。   首先,我们在项目的“头文件”上方右键,选择“添加”→“现有项”,如下图所示。   ...其中,这个Rec_CPP文件夹就是这里项目文件夹。   这个时候,再运行代码,就没问题了。

    23510

    在Linux环境下采用压缩包方式安装JDK 13方法

    Hat和Debian旗下Linux系统上分别安装,而且还会有互相转换问题,但是用压缩包就没有这个问题了,尽管相对要繁琐一些。...你问题还真是多啊,你说得对,但是在特别需求情形下,不得不采取一些不喜欢”行为。...但是看起来网上同类教程非常多啊 什么时候说过这是一篇教程??这只是作为一次过程记录而已,如果可能的话也希望它能够成为其他人参考,而且也参考很多人安装过程,最终成功。...GUI的话,你可以用wget指令: [user@localhost /usr/lib/jvm/jdk-13]$ su root # 整个过程需要提升为root权限进行,因为普通用户不可以在usr、etc文件夹及它们文件夹下进行修改...好像Oracle系软件都是这副死亚,比如Oracle DB…… JDK需要这样几个环境变量: JAVA_HOME :Java主目录,你把压缩包包解压之后得到jdk-13文件夹所在位置(并且包含

    1.2K10

    深度学习常用Linux命令

    这里记录一些平时用到Linux命令 man man command可以查看某个命令帮助文档,摁q退出帮助文档 cd cd -可以在最近两次目录之间来回切换 touch touch file_name...文件 ls -lh | grep .md whereis 可以查找含有制定关键字文件,如whereis python 重定向 > 和 >>(非常重要!!!)...也可以给文件或目录重命名 zip zip file.zip file压缩文件 zip dir.zip -r dir压缩文件夹 unzip unzip file.zip解压由zip命令压缩.zip文件...tar tar -cvf file.tar dir打包文件夹 tar -xvf file.tar解包 tar -czvf file.tar.gz dir压缩文件夹 tar -zxvf file.tar.gz...解压 c:打包 x:解包 v:输出详细信息 f:指定打包文件 z:使用gzip压缩格式 chmod chmod -R 777 data将整个data文件夹修改为任何人可读写 chown chown -R

    1.3K20

    9 个使用前必须再三小心 Linux 命令

    这里收集了一些对系统有危害 Linux 代码,帮助你避免他们。请记住:这些代码非常危险,甚至可以经过修改,变得更加有危害性。...rm -d command :删除空目录,如果非空目录则不会执行该操作 rm -rf/ command:强制删除根目录中所有内容和文件夹(包括写保护文件)命令。....]* command :删除文件及文件夹带有删除提示 4....代码可能是正常代码,不过,有一些恶意代码伪装在大型源代码中,如果是这样,你系统就中枪。如何避免?仅接受并编译可信赖来源源代码。 9....Decompression Bomb 你已经收到一个压缩文件,你被要求提取这个看起来很小文件,可能小到 KB。事实上,该小尺寸压缩文件包含高度压缩数据。

    77110

    Python 自动化办公之你还在手动操作“文件”或“文件夹”吗?

    """ dirpath是文件夹路径 dirnames是dirpath这个文件夹文件夹列表 files是dirpath这个文件夹文件列表 """ 结果如下: ?...② 复制文件夹:相当于重命名文件夹 shutil.copytree("要复制文件夹", "要复制到文件夹位置"); 注意:将某个文件夹移动到另外一个文件夹(该文件夹必须是新文件夹),不能是已经存在文件夹...3)移动文件或文件夹 shutil.move("要移动文件或文件夹","要移动到位置"):移动文件/文件夹文件夹或者文件被移动后,原始文件就没有; ① 移动文件 shutil.move("要移动文件...4、创建和解压压缩包 注意:这里所说压缩包,指的是“.zip”格式压缩包; 1)读取压缩包里文件 import zipfile with zipfile.ZipFile("python办公自动化...② 压缩包已经存在,往其中添加文件 # 往上述压缩包中,再次添加一个新文件“傻子”文件夹,使用“a” with zipfile.ZipFile(r"创建压缩包.zip", "a") as zipobj

    87710

    Excel实战技巧60: 自定义功能区

    现在Office文件,实际上是一个压缩文件,其中包括创建文档XML文件。这样,我们能够通过修改其XML文件结构,从而创建自已功能区。...图1 双击打开这个压缩文件,可以看到如下图2所示文件夹和文件,我们需要在其中添加一些文件夹和文件,以及修改一些文件来自定义功能区。 ?...保存并关闭这个.rels文件,删除压缩文件中_rels文件夹,将修改后_rels文件夹拖回到压缩文件中。...将压缩文件扩展名修改回Excel文件扩展名,打开Excel文件,可以看到添加了一个新名为“选项卡”选项卡,有两个组,每组有两个按钮,如下图3所示。 ?...8.将压缩文件扩展名恢复成Excel文件扩展名。 9.在VBE中编写相关控件回调代码,注意过程名后带有相应回调参数。

    1.8K10

    9 个使用前必须再三小心 Linux 命令

    这里收集了一些对系统有危害 Linux 代码,帮助你避免他们。请记住:这些代码非常危险,甚至可以经过修改,变得更加有危害性。...rm -d command :删除空目录,如果非空目录则不会执行该操作 rm -rf/ command:强制删除根目录中所有内容和文件夹(包括写保护文件)命令。....]* command :删除文件及文件夹带有删除提示 4....代码可能是正常代码,不过,有一些恶意代码伪装在大型源代码中,如果是这样,你系统就中枪。如何避免?仅接受并编译可信赖来源源代码。 9....Decompression Bomb 你已经收到一个压缩文件,你被要求提取这个看起来很小文件,可能小到 KB。事实上,该小尺寸压缩文件包含高度压缩数据。

    84960

    Windows下复制粘贴文件特别慢,查看文件夹,发现小文件特别多,针对这种情况,有什么好办法?

    以下是一些可能解决办法:使用压缩工具:你可以尝试使用如 7-Zip、WinRAR 等压缩工具,将这些小文件打包成一个压缩文件,然后复制这个压缩文件。到新位置后,再解压这个压缩文件。...robocopy 和 xcopy 都是 Windows 系统中命令行文件复制工具,但它们之间有一些区别。总体而言,robocopy 相对于 xcopy 具有更多功能和优势。...以下是 robocopy 和 xcopy 之间一些主要区别和优势:更多选项和功能:robocopy 提供比 xcopy 更多选项和功能,如镜像模式、文件属性复制、文件夹结构复制、重试选项等。...xcopy 能够处理大多数常见文件复制任务,如复制文件、文件夹文件夹、保留文件属性和时间戳等。...robocopy 示例下面这句示例是最喜欢组合:有开始时间、结束时间、文件夹路径和包含文件数,源、目路径robocopy "C:\input\V-Ray Benchmark" "D:\input

    1.5K20

    Python写一个带图形界面的文件压缩软件

    每日分享一些学习方法和需要注意小细节 点击:python技术分享交流 Python压缩软件程序实现和分析过程 首先不像商业压缩软件,把功能简化了很多,只实现主要压缩压缩文件和文件夹)和解压功能...Python一些第三方压缩和解压库,选用了zipfile,把文件压缩为.zip,图形化选用了pyqt5,因为之前翻译软件实现过图形化,所以就偷懒拿过来改一下用。...Python压缩程序第一个卡壳地方是: 因为要实现压缩文件和文件夹功能,所以当点击图形界面的”选择“按钮时要支持既能选择文件,又能选择文件夹。 ?...实现既能选文件又能选文件夹功能,于是趟坑去实现一把,对Qt本身机制也是一知半解,所以调试了很久。...第二天又想起了,想再完整测试一下,毕竟要写在猿人学公众号上,被人挑刺心里总是不好受。结果发现压缩时会把你整个文件路径上文件夹压缩进去。

    1.1K30

    Python之文件操作大全

    大家好,又见面是你们朋友全栈君。...在日常工作或生活中,总避免不了需要操作文件或文件夹,比如希望找出电脑中所有临时文件并清除,或者找到指定文件夹内所有图片文件并进行重新命名等等,如果能通过Python脚本方式解决,会大大提升相关操作效率...) 返回对指定文件单层遍历迭代器,可遍历该迭代器,可获取文件或文件夹名称、属性信息 递归遍历 os.walk(dir_str) 递归遍历指定文件夹,包括文件夹 import os dir_str=...文件&文件夹其他操作 操作 代码 说明/示例 压缩文件/文件夹 shutil.make_archive(file_str,format,src_dir) 将src_dir按照format指定格式压缩为...('aaa','zip','/users/aaa/downloads/常用脚本') #以上会将常用脚本文件夹内所有内容压缩为aaa.zip,并存到当前工作目录下 #如果同时希望指定压缩文件存储位置,则

    45010
    领券