精华内容
下载资源
问答
  • Java实现个文件打包压缩成tar.gz文件
    千次阅读
    2019-07-08 17:47:41

    后缀为tar.gz的文件实际上时先将文件(单个或多个)打包成后缀为tar的(tar包)文件,再用gzip压缩成gz文件,如此来说我们便可以用两步来实现此功能,请看代码:

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.zip.GZIPOutputStream;

    import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
    import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
    import org.apache.commons.compress.utils.IOUtils;

    /**
     * @Title: GZIPUtil.java
     * @Description: gzip文件压缩和解压缩工具类
     * @author LM
     * @date 2009-11-4 下午06:23:29
     * @version V1.0
     */
    public class GZIPUtil {
     
     /**
      * 
      * @Title: pack
      * @Description: 将一组文件打成tar包
      * @param sources 要打包的原文件数组
      * @param target 打包后的文件
      * @return File    返回打包后的文件
      * @throws
      */
     public static File pack(File[] sources, File target){
      FileOutputStream out = null;
      try {
       out = new FileOutputStream(target);
      } catch (FileNotFoundException e1) {
       e1.printStackTrace();
      }
      TarArchiveOutputStream os = new TarArchiveOutputStream(out);
      for (File file : sources) {
       try {
        os.putArchiveEntry(new TarArchiveEntry(file));
        IOUtils.copy(new FileInputStream(file), os);
        os.closeArchiveEntry();
         
       } catch (FileNotFoundException e) {
        e.printStackTrace();
       } catch (IOException e) {
        e.printStackTrace();
       } 
      }
      if(os != null) {
       try {
        os.flush();
        os.close();
       } catch (IOException e) {
        e.printStackTrace();
       }
      }
      
      return target;
     }

     /**
      * 
      * @Title: compress
      * @Description: 将文件用gzip压缩
      * @param  source 需要压缩的文件
      * @return File    返回压缩后的文件
      * @throws
      */
     public static File compress(File source) {
      File target = new File(source.getName() + ".gz");
      FileInputStream in = null;
      GZIPOutputStream out = null;
      try {
       in = new FileInputStream(source);
       out = new GZIPOutputStream(new FileOutputStream(target));
       byte[] array = new byte[1024];
       int number = -1;
       while((number = in.read(array, 0, array.length)) != -1) {
        out.write(array, 0, number);
       }
      } catch (FileNotFoundException e) {
       e.printStackTrace();
       return null;
      } catch (IOException e) {
       e.printStackTrace();
       return null;
      } finally {
       if(in != null) {
        try {
         in.close();
        } catch (IOException e) {
         e.printStackTrace();
         return null;
        }
       }
       
       if(out != null) {
        try {
         out.close();
        } catch (IOException e) {
         e.printStackTrace();
         return null;
        }
       }
      }
      return target;
     }

     public static void main(String[] args) {
      File[] sources = new File[] {new File("task.xml"), new File("app.properties")};
      File target = new File("release_package.tar");
      compress(pack(sources, target));
     }
    }

    更多相关内容
  • 尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家!

    使用概述:

    尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家!

    步骤一(准备好安装文件):

    准备好将要打包的工程文件(夹)
    在这里插入图片描述
    如上图所示,首先将主文件UI.py和文件夹./file放在一级文件夹./YW下方,如果有同级其他.py文件与UI.py放在同一级文件夹即可!

    然后将其他类型的文件统一放入file文件夹当中(例如txt\jpg\csv\png\ico等其他类型文件)


    步骤二(下载安装Pyinstaller):

    先进入控制台,通过cd指令进入到项目当前文件夹
    在这里插入图片描述
    然后输入镜像下载:

    pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    下载安装后即可!


    步骤三(生成.spec文件):

    .spec文件为安装配置文件,作用是对可执行文件进行配置!

    在Pycharm编译器Terminal窗口当前项目路径中输入如下指令:

    pyi-makespec UI.py
    

    在这里插入图片描述
    随后即可在项目文件夹中生成UI.spec文件!
    在这里插入图片描述


    步骤四(配置.spec文件):

    用记事本打开UI.spec文件:
    在这里插入图片描述

    1、如果还有其他.py文件则在Analysis后面添加,例如我这里添加了个同级文件’tmp.py’

    2、在pathex后手动输入文件工程的绝对路径

    3、在datas后添加其他文件夹’file’,注意括号和文件夹名称(这个是设置其他数据的存储路径)

    4、将consolo = True设置为consolo = False,目的是为了消除封装好exe执行时出现控制台黑框!


    步骤五(配置完成进行封装):

    在Pycharm编译器Terminal窗口当前项目路径中输入如下指令:

    pyinstaller -D -w  UI.spec
    
    

    在这里插入图片描述

    封装完成:
    在这里插入图片描述


    封装结果:

    出现三个文件夹:
    在这里插入图片描述
    点击进入dist:
    找到可执行文件
    在这里插入图片描述
    点击运行:
    在这里插入图片描述
    成功运行!

    展开全文
  • 一、安装pyinstaller 打开DOS窗口输入以下命令: pip install pyinstaller 二、打包 1、准备打包文件 打包的项目为Tkinter目录下的所有python文件,其中test.py为主文件 ...spec文件中主要包含4clas

    前言

     我们开发的脚本一般都会用到第三方包,当别人需要用到我们脚本的时候,如果我们直接把xxx.py文件发给她,她是没有办法直接使用的,她还需要安装python解释器和安装我们使用的第三方包,这个时候对于她来说就很麻烦,那我们应该怎么让她不需要搭建环境了?这个时候我们就可以用到pyinstaller模块了,我们直接打一个exe包,发给她使用,这个时候她不需要任何环境,直接双击运行即可。

    一、安装pyinstaller

     打开DOS窗口输入以下命令:

    pip install pyinstaller
    

    二、打包教程

     以下会介绍两种打包方式。第一种是把所有.py文件打包成单个exe程序,第二种是把所有.py文件打包成一个目录文件夹,包含exe程序和一些依赖文件(项目工程很大时,建议使用这个)。

     1、单个可执行exe文件

    • 同一个文件夹下
      (1)打包的项目为Tkinter目录下的所有.py文件,其中test.py为主文件。

    在这里插入图片描述

     (2)在Tkinter目录下新建一个package.spec文件。

    在这里插入图片描述
     (3)并在文件中写入以下内容,根据自己的项目进行相应的修改。

    # -*- mode: python ; coding: utf-8 -*-
    
    block_cipher = None
    
    # 所有需要打包的.py文件, test.py为执行文件
    file = [
            'test.py',
            'test1.py',
            'test2.py'
            ]
    
    a = Analysis(file,
                 pathex=['C:\\Users\\Admin\\Desktop\\Tkinter'],  # 此列表为项目绝对路径
                 binaries=[],
                 datas=[],
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              name='test',  # 程序exe的名称
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True  #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
              )
    

    (4)通过pyinstaller打包spec文件

    pyinstaller package.spec
    

     打包成功后,会显示以下信息,C:\Users\Admin\Desktop\Tkinter\dist\test.exe为打包后exe执行文件路径
    在这里插入图片描述

    • 不同文件夹下
      在这里插入图片描述
    # -*- mode: python ; coding: utf-8 -*-
    
    block_cipher = None
    
    # 所有需要打包的.py文件, test.py为执行文件
    file = [
            'test.py',
            './folder1/test1.py',
            './folder2/test2.py'
            ]
    
    a = Analysis(file,
                 pathex=['C:\\Users\\Admin\\Desktop\\Tkinter'],  # 此列表为项目绝对路径
                 binaries=[],
                 datas=[],
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              name='test',  # 程序exe的名称
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True,  #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
              icon='C:\\Users\\Admin\\Desktop\\Tkinter\\1.ico') #程序图标,要绝对路径
    

    2、打包为目录(包含exe和一些依赖文件)

     (1)生成主函数对应的spec文件,命令

    在Tkinter路径下使用:pyi-makespec test.py
    

    在这里插入图片描述

    执行命令后,Tkinter目录下会生成test.spec文件
    在这里插入图片描述
     (2)修改spec文件,加入需要打包的所有python文件

    • spec文件中主要包含4个class: Analysis, PYZ, EXE和COLLECT:
    1. Analysis:以py文件为输入,它会分析py文件的依赖模块,并生成相应的信息
    2. PYZ:是一个.pyz的压缩包,包含程序运行需要的所有依赖
    3. EXE:根据上面两项生成
    4. COLLECT:生成其他部分的输出文件夹,COLLECT也可以没有。

    在这里插入图片描述
    test.spec文件

    # -*- mode: python ; coding: utf-8 -*-
    
    block_cipher = None
    
    
    a = Analysis(['test.py','test1.py','test2.py','test3.py'], #所有要打包的.py文件
                 pathex=['C:\\Users\\Admin\\Desktop\\Tkinter'], #此列表为项目绝对路径
                 binaries=[],
                 datas=[('1.png','img')],  # 此处可以添加静态资源,例如你有个图片文件夹img,可以这样写[('1.png','img')],1.png图片要有路径,我这里是放在代码同个目录下的,打包以后会有一个img文件夹
                                         #[('1.png','img'),('test.txt','.')],生成多个文件夹,点表示当前文件夹。
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    
    exe = EXE(pyz,
              a.scripts,
              [],
              exclude_binaries=True,
              name='test88', #程序exe的名称
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True, # 打包的时候进行压缩,False表示不压缩
              console=True, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可。
              icon='C:\\Users\\Admin\\Desktop\\Tkinter\\1.ico') #程序图标,要绝对路径
    coll = COLLECT(exe,
                   a.binaries,
                   a.zipfiles,
                   a.datas,
                   strip=False,
                   upx=True,
                   upx_exclude=[],
                   name='test') #程序文件夹名称
    

     (3)通过pyinstaller打包spec文件

    pyinstaller test.spec
    

    在这里插入图片描述

    此时项目下多了两个目录,进入dist目录,找到dist路径下后缀名为exe的文件。这里为dist下目录test下的test88.exe
    在这里插入图片描述
    在这里插入图片描述
    注:如果要在其他电脑运行程序,需要把test整个文件夹拷贝过去。

    展开全文
  • 需要工程涉及两目录的模块文件打包成exe,打包环境如下: 1、windows7; 2、Python 3.7.2; 3、PyInstaller 3.6 。 二、操作步骤 2.1、使用清华镜像下载并安装pyinstaller, pip install ...

    一、引言

    需要将一个工程涉及两个目录的模块文件打包成exe,打包环境如下:
    1、windows7;
    2、Python 3.7.2;
    3、PyInstaller 3.6 。

    二、操作步骤

    2.1、使用清华镜像下载并安装pyinstaller,

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

    2.2、安装成功后进入DOS命令行

    进入模块classA所在目录:F:\学习\python\project\classA
    也可以在PyCharm的terminal方式下操作,但个人觉得反而不如DOS方式方便。

    2.3、一个工程两个目录的情况

    两个目录的模块文件非常简单,就是分别定义了classA和classB的构造方法和析构方法,在模块classA中使用了另一个目录下的模块classB。具体工程情况如下:
    在这里插入图片描述
    由于没有查到多目录打包相关的文档,尝试用多种方式执行打包命令:

    1. pyinstaller classA.py classB.py -p F:\学习\python\project\classA;F:\学习\python\project\classB
      报错:ValueError: script ‘F:\学习\python\project\classA\classB.py’ not found,可以看到classB.py目录找错了
    2. pyinstaller classA.py classB.py -p F:\学习\python\project\classA; -p F:\学习\python\project\classB,报相同的错误
    3. pyinstaller classA.py F:\学习\python\project\classB\classB.py
      打包成功,打包文件在classA所在目录下的dist,即F:\学习\python\project\classA\dist\classA下,执行文件为classA.exe,拷贝F:\学习\python\project\classA\dist\classA整个目录到其他未安装Python的机器上能正常执行
    4. pyinstaller classA.py -p F:\学习\python\project\classB
      打包成功,但在代码中执行import classB.classB时报错:ModuleNotFoundError: No module named 'classB',但如在import classB.classB前加入如下代码:
    import sys
    sys.path.append("F:\学习\python\project")
    

    可以正常打包和执行。
    5. pyinstaller classA.py -p F:\学习\python\project
    打包成功,执行成功。

    三、 结论

    在执行两个目录的py文件打包时,只需要在其中一个目录下运行,打包时:

    • 包含主程序的py文件必须是命令行中输入py文件列表的第一个文件(假设为xxx.py)
    • 在没有其他参数设置的情况下,输出目录缺省在执行打包所在的目录的dist\xxx子目录下
    • 与主程序相关的其他py模块文件,包括其他目录的py文件,可以在打包时有多种处理方式,但无论哪种方式,都是告知打包程序其他文件所在的路径
    1. 第一种方式就是在命令行第一个py文件后,将所有py文件都列出,但不在当前目录的文件要带文件路径;
    2. 第二种方式,所有主程序import的模块(或在import模块中再import的模块,依次类推),都无需将对应py文件在打包命令行中列出,打包程序会根据import关系自动打包,但必须确保相关文件所在目录必须在打包程序搜索路径上,这个路径可以是Python的使用的环境变量、可以是打包命令的-p或–paths参数指定路径(可以每个目录带一个-p或–paths 前导选项)、也可以是一个前导带多个目录,每个目录用分号分隔,也可以是py文件中sys.path.append的路径。
      可能还有更多的其他方式,但有这几种足够使用了。但注意 如果对应py文件不能通过第二种import方式加载,则打包时只能采用第一种方式。

    如果涉及多个目录,与两个目录的情况类似。

    老猿Python,跟老猿学Python!

    展开全文
  • 步教你如何python文件打包成exe可执行文件

    万次阅读 多人点赞 2020-04-12 22:20:17
    python 打包成exe 主要有两种,一种是py2exe,另一种便是pyInstaller,之前我是用py2exe的,但是我后来发现py2exe存在问题:1,打包好的 exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上...
  • python打包exe文件

    2018-05-26 21:34:02
    当需要把自己写的程序移植到没有安装python的计算机时,需要自身程序打包
  • 写好的winform应用程序打包成一.EXE结尾的可执行文件,可以安装到自己的电脑上面,有图和文字说明
  • 2,怎么看这jar包是否可执行或者运行正确? 第一种:可以向百度经验最后的执行步骤:进入生成的jar包位置 然后在地址栏中输入cmd,即在当前目录下运行cmd,输入命令:java(空格)-jar(空格)这jar包...
  • 一、文件打包为zip public void zip(List<File> fileList,String zipFileName) { FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; ZipOutputStream ...
  • 使用Pycharmpy文件打包成一可运行并且可安装文件第一步:安装pyinstaller第二步:打包生成exe文件第步:造成一类似安装程序的东西 第一步:安装pyinstaller 先打开命令行,打开pycharm在左下角: 打包...
  • 可以用来压缩打包单文件、多个文件、单个目录、多个目录。 Linux打包命令_tar tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 多个文件压缩...
  • class文件打包为jar包

    万次阅读 2018-07-31 10:10:20
    行为主类入口,即main函数所在文件,sendMsg为包名称。 MANIFEST.MF文件是为了在执行jar包时,可以快速定位到主程序入口。 4. 打包jar文件 jar -cfm jar包名称 主类清单文件打包的class文件 即 ...
  • 可以用来压缩打包单文件、多个文件、单个目录、多个目录。 Linux打包命令_tar tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 多...
  • 把多py文件打包成一可以直接在pycharm直接运行的文件 如果是想同时打包多py文件在pycharm中,通常做法是它转化为exe文件。因此,首先,我们需要安装 pyinstaller。 第一步,安装pyinstaller 您可以在下面这...
  • PyInstaller是一十分有用的第方库,它能够在Windows、Linux、MacOSX等操作系统下Python源文件打包(或生成.exe文件),通过对源文件打包,Python程序可以在没有安装Python的环境中运行,也可以作为一独立文件...
  • 1、需要打包的项目为anjuke_sd目录下的所有python文件,其中excute_main.py为主文件。 2、生成主函数对应的spec文件 命令:在anjuke_sd路径下使用:pyi-makespec excute_main.py 如下图已经生成excute_main.spec...
  • 、安装好环境就可以打包exe文件了 命令行进入要打包文件的根目录下输入:pyinstaller -i tb.ico -F add_car.py(tb.ico图标文件,注意必须是ico结尾文件。 add_car.py要打包的python文件)提示successfully表示...
  • 如何Python文件打包成一可执行的小程序 一、安装pyinstaller pyinstaller: 一用来打包python的py文件的库,通过他可以.py文件打包成可执行的.exe文件 (1)打开控制台,快捷键WIN+R,输入CMD,回车 ...
  • 使用虚拟文件打包系统,您可以加入任何类型的文件,如动态库(.dll)、ActiveX/COM对象(.dll , .ocx),视频和音频文件(.avi,.mp3 ),文本文件(.txt, *.doc )等, Enigma虚拟文件打包系统不会打包的文件释放...
  • 使用pyinstaller打包python文件

    千次阅读 2020-06-18 21:39:23
    这次需要打包的项目为Tkinter目录下的test3目录下的所有python文件,其中main.py为主文件。 二.打包流程 1.生成主函数对应的spec文件 命令:在test3路径下使用:pyi-makespec main.py 如下图已经生成main....
  • 单个文件打包 1.安装Pyinstaller模块 2.在Pycharm中的Terminal输入命令:“pyinstaller -F -w XXX.py” 就可以制作出exe。 在cmd中:先cd到项目目录下再输入命令。例如:pyinstaller -F -w -i g:\2345Downloads\...
  • 在使用linux系统时,一些新手会遇到linux文件打包、压缩和解压的问题,具体该怎么解决呢?接下来为你提供详细教程,具体如下。Linux 系统中,最常用的归档(打包)命令就是 tar,该命令可以许多文件一起保存到一...
  • python文件打包成exe可运行文件

    万次阅读 多人点赞 2017-12-24 18:16:19
    目前有好几种方法可以python文件打包成exe应用程序文件,例如py2exe,pyinstaller等,比较下来,还是觉得pyinstaller使用起来比较简单。 首先第一步下载安装pyinstaller, 如果已经安装过python3的用户比较方便...
  • 第一步安装pyinstaller库:pip...第步,输入pyinstaller -F .py就好了,.py就是要打包文件。 出现completed successfully就成功了。 生成的exe文件在dist里,这exe文件单独拿出来放在任何的位置都可以运行。 ...
  • cygwin中将一系列.o文件打包成.a文件

    千次阅读 2018-05-24 16:08:57
    在cygwin或者linux中,可以通过以下命令,一系列.o文件打包成.a文件。 ar crv libtest.a *.o 或者也可以用如下命令。 ar rc libtest.a *.o 运行结果如下图所示: 由上图结果可知,通过如上命令,...
  • 解决思路是:.exe在执行时会生成一临时文件夹,而我们需要做的就是把我们的资源文件放入临时文件夹,让程序访问。 目录前言1.打包.exe文件方法简介2.二级目录级目录 1.打包.exe文件方法简介 Python打包.exe的...
  • python 资源文件打包进exe

    千次阅读 2020-09-09 16:34:12
    文章目录1、修改代码中资源路径2、修改生成的 *.spec 文件3、使用 spec 文件再次打包 exe 1、修改代码中资源路径 在执行exe时资源文件会被解压到C:\Users\xxx\AppData\Local\Temp_MEI33282这样的一名称随机的...
  • maven 打包排除配置文件

    千次阅读 2020-12-20 06:30:10
    如果你想通过pom.xml文件的配置实现的话,你可以这样1、打jar包时过滤配置文件src/main/resources**/*true..............2、在plugins中添加插件org.apache.maven.pluginsmaven-resources-plugincopy-...
  • 用Python将文件进行压缩,可以使用 zipfile库,提供了非常丰富的API。 zipfile本身是上下文管理器, 可以使用with。... """ 文件夹中文件压缩存储为zip :param zip_file_name: /root/Document/test.zip :para

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 416,039
精华内容 166,415
关键字:

怎样将三个文件打包