基于nodejs+python的解压缩

0x01 技术栈


python.js 在github中有。
nodejs 自己安装就好了.

0x02 coding


/**
 * Author: Smarttang
 * Date: 2016.10.16
 *
 * ------
 *  基于python的zip解压
 *  可以请求post和get
 *  zip = require('./zipUtils')
 *  zip.init('/xxx/xxx.zip','/tmp/xxxx/')
 *  var status = zip.do()
 */
var python = require('python.js');
var zipfile = python.import('zipfile');


module.exports = {
    /**
     * 初始化配置
     * @param  {[type]} filename [需要解压的文件压缩包(.zip)]
     * @param  {[type]} dpath    [解压拼装的路径]
     * @return {[type]}          [description]
     */
    init: function(filename,dpath){
        this.filename = filename;
        this.dpath = dpath;
        // 判断是否有报告
        this.report = false;
    },
    /**
     * 解压缩报告文件
     * @return {[type]} [description]
     */
    do: function(){
        // 判断是不是压缩文件
        if(zipfile.is_zipfile(this.filename)){
            // 打开读取
            var fz = zipfile.ZipFile(this.filename,'r');
            // 将数据转换成列表数组
            var filelist = eval(JSON.parse(JSON.stringify(''+fz.namelist())));
            // 遍历找报告文件是否存在
            for (var i in filelist){
                if (filelist[i] == 'report.pdf'){
                    // 将报告释放到指定的目录下面
                    fz.extract('report.pdf',this.dpath);
                    this.report = true;
                }
            }
        }
        return this.report;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,799评论 25 709
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,721评论 6 427
  • 西安,曾经的“长安,”13个朝代曾建都于此的,周、秦、汉、隋、唐等朝代3000多年的历史沧桑,最爱唐朝,从玄武门之...
    c0111213b435阅读 3,621评论 0 4
  • 今日得到: 1.跨界。认知决定选择,世界很大变化很快,必须养成随时随地跨界学习的习惯和能力,不断探索那些与自己专业...
    Hothill阅读 1,014评论 0 0
  • 空气里 闯入了一种气 被你吸走 接着,又闯入另一种气 还是被你吸走 抵御这些来历不明的气 需要武器 当你打造好武器...
    周中华哲理诗阅读 1,098评论 0 1