Python打包文件夹(zip/tar/tar.gz)

简介:

Code tells all:

一、zip

1
2
3
4
5
6
7
8
9
10
11
12
import  os, zipfile
 
#打包目录为zip文件(未压缩)
def  make_zip(source_dir, output_filename):
     zipf  =  zipfile.ZipFile(output_filename,  'w' )    
     pre_len  =  len (os.path.dirname(source_dir))
     for  parent, dirnames, filenames  in  os.walk(source_dir):
         for  filename  in  filenames:
             pathfile  =  os.path.join(parent, filename)
             arcname  =  pathfile[pre_len:].strip(os.path.sep)      #相对路径
             zipf.write(pathfile, arcname)
     zipf.close()


二、tar/tar.gz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import  os, tarfile
 
#一次性打包整个根目录。空子目录会被打包。
#如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。
def  make_targz(output_filename, source_dir):
     with tarfile. open (output_filename,  "w:gz" ) as tar:
         tar.add(source_dir, arcname = os.path.basename(source_dir))
 
#逐个添加文件打包,未打包空子目录。可过滤文件。
#如果只打包不压缩,将"w:gz"参数改为"w:"或"w"即可。
def  make_targz_one_by_one(output_filename, source_dir): 
     tar  =  tarfile. open (output_filename, "w:gz" )
     for  root, dir ,files  in  os.walk(source_dir):
         for  file  in  files:
             pathfile  =  os.path.join(root,  file )
             tar.add(pathfile)
     tar.close()


相关阅读:

1、zipfile — Work with ZIP archives

2、tarfile — Read and write tar archive files

3、Python压缩/解压gzip大文件


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1719427如需转载请自行联系原作者


RQSLT

相关文章
|
3天前
|
IDE 开发工具 Python
使用python3遍历文件夹并将文件目录保存到指定文件
使用python3遍历文件夹并将文件目录保存到指定文件
8 0
|
8天前
|
Python Windows
在 Windows 平台下打包 Python 多进程代码为 exe 文件的问题及解决方案
在使用 Python 进行多进程编程时,在 Windows 平台下可能会出现将代码打包为 exe 文件后无法正常运行的问题。这个问题主要是由于在 Windows 下创建新的进程需要复制父进程的内存空间,而 Python 多进程机制需要先完成父进程的初始化阶段后才能启动子进程,所以在这个过程中可能会出现错误。此外,由于没有显式导入 Python 解释器,也会导致 Python 解释器无法正常工作。为了解决这个问题,我们可以使用函数。
14 5
|
9天前
|
Python
python项目依赖库打包发布方法
python项目依赖库打包发布方法
14 0
|
12天前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
13天前
|
Unix 开发工具 Python
python os.walk() 实现遍历文件夹
python os.walk() 实现遍历文件夹
|
14天前
|
存储 区块链 Python
怎么把Python脚本打包成可执行程序?
【6月更文挑战第3天】最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。
15 1
|
14天前
|
搜索推荐 区块链 开发者
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
|
14天前
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
|
22天前
|
索引 Python
Python利用列表、字典和zip函数处理数据
最近重温Python基础语法,一道练习题巩固下列表、字典、循环。 给定下面两个列表 attributes 和 values,要求针对 values 中每一组子列表 value,输出其和 attributes 中的键对应后的字典,最后返回字典组成的列表,请分别用一行和多行条件循环语句,来实现这个功能
|
26天前
|
Python Windows
一步步教你将包含其他文件的 Python 脚本等打包成 EXE
最近我编写了一个Python脚本,该脚本需要依赖两个同级目录下的文件才能正常运行。然而,当我将脚本打包成EXE程序后,必须将这两个文件放在EXE文件的同级目录下才能正常执行。为了简化部署,我希望能将这两个文件一起打包到EXE文件中,这时候该怎么办呢?