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

相关文章
|
1月前
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
|
12天前
|
缓存 自然语言处理 开发工具
Python中 __pycache__文件夹是什么?
Python中 __pycache__文件夹是什么?
18 5
|
25天前
|
Linux iOS开发 MacOS
【超级简单】Python代码如何打包成exe文件
【超级简单】Python代码如何打包成exe文件
43 1
|
1月前
|
存储 区块链 Python
怎么把Python脚本打包成可执行程序?
最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。
怎么把Python脚本打包成可执行程序?
|
1月前
|
Python Windows
在 Windows 平台下打包 Python 多进程代码为 exe 文件的问题及解决方案
在使用 Python 进行多进程编程时,在 Windows 平台下可能会出现将代码打包为 exe 文件后无法正常运行的问题。这个问题主要是由于在 Windows 下创建新的进程需要复制父进程的内存空间,而 Python 多进程机制需要先完成父进程的初始化阶段后才能启动子进程,所以在这个过程中可能会出现错误。此外,由于没有显式导入 Python 解释器,也会导致 Python 解释器无法正常工作。为了解决这个问题,我们可以使用函数。
33 5
|
1月前
|
Linux 开发者 iOS开发
Python常用打包工具比较
以上是常用的四种打包工具比较。各自有着自己的优缺点,开发者可以根据自己的需求来选择合适的工具。如果你只需要在 Windows 平台上运行应用程序,可以选择 py2exe。如果你需要跨平台支持,并且希望打包过程简单,可以选择 Briefcase。如果你需要支持多个平台,并且打包过程比较复杂,可以选择 cx_Freeze。如果你需要支持多个平台,并且对第三方库的兼容性有较高的要求,可以选择 PyInstaller。
24 4
|
13天前
|
存储 开发者 网络架构
在Python中,`setuptools`是一个强大的工具,用于帮助开发者打包和分发他们的Python代码库。
在Python中,`setuptools`是一个强大的工具,用于帮助开发者打包和分发他们的Python代码库。
|
1月前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?
|
1月前
|
存储 区块链 Python
怎么把Python脚本打包成可执行程序?
【6月更文挑战第3天】最近根据用户提的需求用python做了一个小工具,但是在给客户使用的时候不能直接发送python文件,毕竟让客户去安装python环境,那就离了大谱了。所以这时候就需要把多个py文件带着运行环境打包成EXE可执行文件。
22 1
|
1月前
|
搜索推荐 区块链 开发者
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件