在Windows上从Python脚本递归压缩目录

我想最好的方法是调用带有某些东西的外壳工具 像os.popen(). 但是我似乎找不到任何免费工具. Winzip具有命令行选项,但仅适用于注册用户. 那是 如果我想在其他机器上安装脚本,请弄乱. PKWARES拉链也是如此. 至少我似乎找不到免费版本 它. Gzip似乎可以解决问题,但是我需要安装Cygwin,那就是 也是个麻烦;-) 真的可以是没有免费的.zip命令行工具 窗户,还是我的谷歌搜索技能只是差的? 理想情况下,它应该是一个我可以放入的单个.exe文件 使用我的脚本的文件夹,以便于发行. 还是有更多的Pythonic方法? 问候最大M

# 回答1

您看过模块Zipfile吗? 这似乎能够完成一切 你描述吗? 关于Gerrit - - Gaudi Systems架构:http://www.extra.research.philips.com/natlab/sysarch/
# 回答2

>>>>> gerrit muller (gm)写道: GM>您是否看过模块Zipfile? 这似乎能够掌握您的一切 GM>描述? 否则,总是会有info-zip免费命令行utils. - - Piet Van Oostrum URL:http://www.cs.uu.nl/~piet [pgp] 私人电子邮件:p.xhydeyde*****@hccnet.nl
# 回答3

Gerrit Muller写道: 是的,我做到了. 但是,当我阅读时,它仅在单个文件上工作. 但是在您的帖子之后,我发现:" 7.19 Tarfile-读写焦油 存档文件" 因此,我可以改为创建.tar.gz文件. 那只是花花公子. 也许这会教会我下次看起来更好. 我应该知道,如果这是我需要的东西,那就在库中. 谢谢Max M
# 回答4

迈克·弗莱彻(Mike C. Fletcher)写道: 谢谢! max m
# 回答5

Max M写道: ... 老实说,我自己不会这样做,我只是告诉每个人都得到焦油和 GZIP,但这是使用Zipfile创建ZIPS的简单示例 目录. 您需要检查.jpg,.mpg等,并避免 压缩最有可能的人,但基础知识就在那里. hth, 麦克风 导入Zipfile,操作系统 def tozip(目录,zipfile): """将目录存储到邮政编码"的样本"" z = zipfile.zipfile( zipfile,'w',压缩= zipfile.zip_deflated ) Def Walker(Zip,Directory,Files,root = Directory): 对于文件中的文件: file = os.path.join(目录,文件) #是的,+1是骇客... Archivename = file [len(os.path.commonprefix(((root,file))))+1:] zip.write(文件,Archivename,zipfile.zip_deflated) 打印文件 OS.Path.Walk(目录,Walker,Z) z.close() 返回Zipfile 如果__name__ ==" __ -main __": tozip('v:\\ temp','c:\\ temp \\ test.zip') _________________________________________ 迈克·C·弗莱彻(Mike C. Fletcher) 设计师,VR水管工,编码器http://members.rogers.com/mcfletch/
# 回答6

迈克·弗莱彻(Mike C. Fletcher)写道: 好吧,我开始尝试tarfile模块,就像往常一样 比我想象的要容易得多. 进口tarfile 包='Sypedir' tf = tarfile.open('%s. tar.gz'%包,'w:gz') TF.ADD(包) tf.close() 为此使用命令行工具太多... ;-) 感谢所有指示. 问候最大M
# 回答7

最大限度, 您必须将OS.Path.walk()与Zipfile一起使用才能获得 你想要什么. 操作系统将行走目录 树递归调用您通过的功能 对此. 在该功能的内部您可以调用Zipfile 要将该子目录中的每个文件添加到.zip 输出文件. - 拉里 " max m" 在消息中写道 新闻:40 ***********************@dread12.news.tele.dk. ..

标签: python

添加新评论