document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/pygment_trac.css" />');
document.write('<link rel="stylesheet" href="http://flowcoder.com/stylesheets/embed.css" />');
document.write('<div class="flowcoder_post flowcoder_clearfix">');
document.write('<div class="flowcoder_posttitle"><a href=\"http://flowcoder.com/141\">Compress file (zip) in Python<\/a></div>');
document.write('<div class="flowcoder_postbody flowcoder_syntax"><div class=\"highlight\"><pre><span class=\"c\">#!/usr/bin/env python<\/span>\n\n<span class=\"kn\">import<\/span> <span class=\"nn\">os<\/span>\n<span class=\"kn\">import<\/span> <span class=\"nn\">zipfile<\/span>\n\n\n<span class=\"k\">def<\/span> <span class=\"nf\">main<\/span><span class=\"p\">():<\/span>\n    <span class=\"n\">zipper<\/span><span class=\"p\">(<\/span><span class=\"s\">&#39;/path/to/test&#39;<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;/new/path/to/test.zip&#39;<\/span><span class=\"p\">)<\/span>\n\n\n<span class=\"k\">def<\/span> <span class=\"nf\">zipper<\/span><span class=\"p\">(<\/span><span class=\"nb\">dir<\/span><span class=\"p\">,<\/span> <span class=\"n\">zip_file<\/span><span class=\"p\">):<\/span>\n    <span class=\"nb\">zip<\/span> <span class=\"o\">=<\/span> <span class=\"n\">zipfile<\/span><span class=\"o\">.<\/span><span class=\"n\">ZipFile<\/span><span class=\"p\">(<\/span><span class=\"n\">zip_file<\/span><span class=\"p\">,<\/span> <span class=\"s\">&#39;w&#39;<\/span><span class=\"p\">,<\/span> <span class=\"n\">compression<\/span><span class=\"o\">=<\/span><span class=\"n\">zipfile<\/span><span class=\"o\">.<\/span><span class=\"n\">ZIP_DEFLATED<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">root_len<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">abspath<\/span><span class=\"p\">(<\/span><span class=\"nb\">dir<\/span><span class=\"p\">))<\/span>\n    <span class=\"k\">for<\/span> <span class=\"n\">root<\/span><span class=\"p\">,<\/span> <span class=\"n\">dirs<\/span><span class=\"p\">,<\/span> <span class=\"n\">files<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">walk<\/span><span class=\"p\">(<\/span><span class=\"nb\">dir<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">archive_root<\/span> <span class=\"o\">=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">abspath<\/span><span class=\"p\">(<\/span><span class=\"n\">root<\/span><span class=\"p\">)[<\/span><span class=\"n\">root_len<\/span><span class=\"p\">:]<\/span>\n        <span class=\"k\">for<\/span> <span class=\"n\">f<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">files<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">fullpath<\/span> <span class=\"o\">=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">root<\/span><span class=\"p\">,<\/span> <span class=\"n\">f<\/span><span class=\"p\">)<\/span>\n            <span class=\"n\">archive_name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">path<\/span><span class=\"o\">.<\/span><span class=\"n\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">archive_root<\/span><span class=\"p\">,<\/span> <span class=\"n\">f<\/span><span class=\"p\">)<\/span>\n            <span class=\"k\">print<\/span> <span class=\"n\">f<\/span>\n            <span class=\"nb\">zip<\/span><span class=\"o\">.<\/span><span class=\"n\">write<\/span><span class=\"p\">(<\/span><span class=\"n\">fullpath<\/span><span class=\"p\">,<\/span> <span class=\"n\">archive_name<\/span><span class=\"p\">,<\/span> <span class=\"n\">zipfile<\/span><span class=\"o\">.<\/span><span class=\"n\">ZIP_DEFLATED<\/span><span class=\"p\">)<\/span>\n    <span class=\"nb\">zip<\/span><span class=\"o\">.<\/span><span class=\"n\">close<\/span><span class=\"p\">()<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">zip_file<\/span>\n\n\n<span class=\"k\">if<\/span> <span class=\"n\">__name__<\/span> <span class=\"o\">==<\/span> <span class=\"s\">&#39;__main__&#39;<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">main<\/span><span class=\"p\">()<\/span>\n<\/pre><\/div>\n</div>');
document.write('<div class="flowcoder_bottombar flowcoder_clearfix">');
document.write('<div class="flowcoder_postedby">Posted by <a href=\"http://flowcoder.com/zh\">zh<\/a> on <a href=\"http://flowcoder.com/\">Flowcoder<\/a></div>');
document.write('<div class="flowcoder_viewraw"><a href=\"http://flowcoder.com/141.txt\">view raw<\/a></div>');
document.write('</div></div>');