精华内容
下载资源
问答
  • python压缩文件为rar
    2022-03-08 09:57:35

    zip格式的压缩

    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:
                print(filename)
                pathfile = os.path.join(parent, filename)
                arcname = pathfile[pre_len:].strip(os.path.sep)   #相对路径
                zipf.write(pathfile, arcname)
            print()
        zipf.close()
    
    make_zip(r"E:\python_sample\libs\test_tar_files\libs","test.zip")

    zip格式的解压缩

    import os,zipfile
    def un_zip(file_name):
        """unzip zip file"""
        zip_file = zipfile.ZipFile(file_name)
        if os.path.isdir(file_name + "_files"):
            pass
        else:
            os.mkdir(file_name + "_files")
        for names in zip_file.namelist():
            zip_file.extract(names,file_name + "_files/")
        zip_file.close()
    un_zip("test.zip")

    rar格式的解压缩

    #rarfile不支持创建rar压缩卷,请用zip/7z
    import rarfile
    def unrar(rar_file, dir_name):
    # rarfile需要unrar支持,
    # linux下pip install unrar, windows下在winrar文件夹找到unrar,加到path里
    rarobj = rarfile.RarFile(rar_file.decode('utf-8'))
    rarobj.extractall(dir_name.decode('utf-8'))

    更多相关内容
  • 直接用 Python 调用 Windows 系统下的 CMD 命令进行压缩

    前言

    .rar 和 .zip 是两种常见的压缩文件格式,.rar 压缩率比zip高,但速度慢,随机访问的速度慢。.zip 可以通过第三方库 zipfile 来进行压缩和解压;.rar 可以通过第三方库 unrar 中的 rarfile 来进行解压(参考),但是笔者目前没有找到可以方便地将批量文件/文件夹压缩成 .rar 格式的工具。

    直到看到博文 Python实现加密压缩成RAR或ZIP文件 中提供的思路:直接用 Python 调用 Windows 系统下的 CMD 命令进行压缩。

    CMD命令参数

    调用压缩成 .rar 的 CMD 命令为:

    C:/"Program Files"/WinRAR/WinRAR.exe a D:/test/data.rar D:/test/data.txt
    
    C:/"Program Files"/WinRAR/WinRAR.exe a D:/test/folder.rar D:/test/folder
    

    命令参数解释:

    • 第一个参数为 WinRAR 软件的安装路径,(需要在电脑上安装 WinRAR)
    • 第二个参数a表示添加压缩,
    • 第三个参数为压缩文件的输出路径及其压缩的文件名,
    • 第四个参数为待压缩的文件路径,如果是单个文件需要具体到文件名,如果是文件夹下所有文件,只需到当前文件夹路径。

    —— NOTE:如果任意一个路径名中含有空格,一定要用引号引起来,否则会报错!!为了保险起见,建议第一、三和四个参数统统通用引号引起来:

    "C:/Program Files/WinRAR/WinRAR.exe" a "D:/test/data.rar" "D:/test/data.txt"
    
    "C:/Program Files/WinRAR/WinRAR.exe" a "D:/test/folder.rar" "D:/test/folder"
    

    —— NOTE:如果需要压缩成 .zip 格式,只需要修改输出文件的后缀名即可。

    待压缩文件路径的级别

    第四个参数——待压缩的文件路径从哪一级目录开始,压缩包就从哪一级目录开始。

    举个例子,现在我的 D:\中存在一个文件夹 test,目录结构如下:

    D:\
    |_test\
    	|_data.txt
        |_folder\
            |_data1.txt
            |_data2.txt
            |_subfolder\
                |_data3.txt
                |_data4.txt
    

    情形1:输入完整的路径

    当我想压缩文件夹 folder\ 时,执行命令:

    "C:/Program Files/WinRAR/WinRAR.exe" a "D:/test/folder.rar" "D:/test/folder"
    

    生成的 folder.rar 目录结构如下:

    folder.rar\
    |_test\
       |_folder\
           |_data1.txt
           |_data2.txt
           |_subfolder\
               |_data3.txt
               |_data4.txt
    

    我们实际想压缩的是文件夹 folder,压缩的结果是从系统盘 D:\下的 test\ 开始(不过test\下的其它文件不会被压缩进去,如上面的data.txt)。

    同理,当我只想压缩 subfolder\ 时,若执行如下命令:

    "C:/Program Files/WinRAR/WinRAR.exe" a "D:/test/folder/subfolder.rar" "D:/test/folder/subfolder"
    

    生成的 subfolder.rar 目录结构如下:

    subfolder.rar\
    |_test\
       |_folder\
           |_subfolder\
               |_data3.txt
               |_data4.txt
    

    情形2:只输入需要压缩的文件/文件夹名

    如果不想要多余的上级目录,可以将CMD命令行的当前工作路径切换到该文件/文件夹所在的目录。

    示例如下,当我想压缩文件夹 folder\ 时,执行命令:

    cd "D:/test/"
    "C:/Program Files/WinRAR/WinRAR.exe" a "folder.rar" "folder"
    

    生成的 folder.rar 目录结构如下:

    folder.rar\
    |_folder\
       |_data1.txt
       |_data2.txt
       |_subfolder\
           |_data3.txt
           |_data4.txt		
    

    同理,当我只想压缩 subfolder\ 时,若执行如下命令:

    cd "D:/test/folder/"
    "C:/Program Files/WinRAR/WinRAR.exe" a "subfolder.rar" "subfolder"
    

    生成的 subfolder.rar 目录结构如下:

    subfolder.rar\
    |_subfolder\
       |_data3.txt
       |_data4.txt
    

    Python 调用CMD命令

    弄清楚 CMD 命令后,例用 Python 进行实现就很容易了,实现方式为:os.system

    具体实现代码如下:

    import os
    
    def compress(input_file, output_file, root_path,
            rar_path='C:/"Program Files"/WinRAR/WinRAR.exe'):
        """
        调用CMD命令压缩文件/文件夹
        Parameters
        ----------
        input_file : 需要压缩的文件/文件夹名。从哪一级目录开始,就会从哪一级开始压缩;
        output_file : 压缩文件的输出路径及其压缩的文件名;
            可以是.rar, .zip;
        root_path: input_file 所在目录;
        rar_path : WinRAR软件的安装路径,
            The default is 'C:/"Program Files"/WinRAR/WinRAR.exe'.
            
        NOTE: 路径和文件名中带空格的时候一定要多加一重引号!!
        """
        cmd_command = r'%s a %s %s' % (rar_path, output_file, input_file)
        os.chdir(root_path) # 切换工作目录
        os.system(cmd_command)
        
        if os.system(cmd_command)==0:
            print('Successful backup to', output_file)
        else:
            print('Backup FAILED', input_file)    
    

    Python实现自动批量压缩

    现在我的需求是:在 root_path 目录下有大量的文件/文件夹,需要逐个对其进行压缩成 .rar 格式。

    实现如下:

    root_path = "D:/test/folder/"
    lists = os.listdir(root_path)
    for fp in lists:   
        input_file = '"' + fp + '"' #待压缩的文件路径及文件,多加一重引号
        output_file = '"' + fp + '.rar"' #压缩文件的输出路径及文件名,多加一重引号
        compress(input_file, output_file, root_path)
    

    大功告成!

    参考阅读

    展开全文
  • 主要介绍了如何使用Python破解ZIP或RAR压缩文件密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 初学Python,有一个练习,将多个文件夹压缩为一个文件,原文使用zip命令,我在windows下,使用rar,老是出错,提示 必须是字串,不能是数组,求解源码如下:#!/usr/bin/env python# Filename: backup_ver1.pyimport ...

    初学Python,有一个练习,将多个文件夹压缩为一个文件,原文使用zip命令,我在windows下,使用rar,老是出错,提示 必须是字串,不能是数组,求解

    源码如下:

    #!/usr/bin/env python

    # Filename: backup_ver1.py

    import os

    import time

    # 1. The files and directories to be backed up are specified in a list.

    #source=['/home/swaroop/byte','/home/swaroop/bin']

    source=['D:\\FileCopier\\*.*','D:\\jeecms_doc\\*.*']

    # If you are using Windows, use source=[r'C:\Documents',r'D:\Work'] or something like that

    # 2. The backup must be stored in a main backup directory

    #target_dir='/mnt/e/backup/' #Remember to change this to what you will be using

    target_dir='E:\\temp\\' #Remember to change this to what you will be using

    # 3. The files are backed up into a zip file

    # 4. The name of the zip archive is the current date and time

    target=target_dir+time.strftime('%Y%m%d%H%M%S')+'.zip'

    # 5. We use the zip command (in Unix/Linux) to put the files in a zip archive

    #zip_command="zip -qr '%s' %s" %(target,' '.join(source))

    zip_command="rar a ",target,' '.join(source)

    # Run the backup

    if os.system(zip_command)==0:

    print 'Successful backup to',target

    else:

    print 'Backup FAILED'

    错误如下:

    Traceback (most recent call last):

    File "E:/project/prjPythonTest/com/my/ex_backup/backup_ver1.py", line 27, in

    if os.system(zip_command)==0:

    TypeError: must be string, not tuple

    展开全文
  • Python3实实现现zip分分卷卷压压缩缩过过程程解解析析 这篇文章主要介绍了Python...查看 官方中文文档 利用 Python 压缩 ZIP 文件我们第一反应是使用 zipfile 库然而它的官方文档中却明确标注此模块目前不能处 理分卷 Z
  • 今天小编就大家分享一篇python读取有密码的zip压缩文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 玩蛇网本文大家提供关于用Python压缩rar、zip文件的方法源码。Python语言对文件方面的处理还是很方便的,例如以前有为大家介绍过Python读取分割压缩TXT文本文件的方法、Python批量删除windows下svn文件夹的方法...

    玩蛇网本文为大家提供关于用Python解压缩rar、zip文件的方法源码。Python语言对文件方面的处理还是很方便的,例如以前有为大家介绍过Python读取分割压缩TXT文本文件的方法、Python批量删除windows下svn文件夹的方法等,都是很实用的文件相关操作方法。python脚本如何解压指定路径下的所有rar文件?

    5892e4e9a827f556e4f995e6dee331fd.png

    下边就来看下用Python解压缩rar、zip文件的方法源码:

    import os

    import sys

    src=sys.argv[1]

    dst=sys.argv[2]

    format=['rar','zip','7z','ace','arj','bz2','cab','gz','iso','jar','lzh','tar','uue','z']

    os.chdir(sys.argv[1])

    for file in os.listdir('.'):

    if os.path.isfile(file) and (os.path.splitext(file)[1][1:].lower() in format)==True:

    #cmd='winrar x -ibck "'+file+'" "'+dst+'\\'+os.path.splitext(file)[0]+'\\"'

    cmd='winrar x -ibck "'+file+'" "'+dst+'\\"'

    os.system(cmd)

    os.remove(file)

    print('done '+file)

    #www.iplaypy.com第一个版本的改进

    #rardecmp.py

    #decompress with winrar

    #arguments :filename directory opt

    # opt='mkdir' to create directory with the correspond filename

    # opt='direct' to decompress rar files in current directory

    # opt='mk&del' to mkdir and delete rar file

    import os

    import sys

    if len(sys.argv)!=3:

    print ('wrong arguments\n')

    print ('rar.py directory opt\n')

    print ('opt=\'mkdir\' to create directory with the correspond filename\n')

    print ('opt=\'direct\' to decompress rar files in current directory\n')

    print ('opt=\'diredel\' to decompress rar files in current directory and delete files\n')

    print ('opt=\'mkdel\' to mkdir and delete rar file\n')

    exit(0)

    #-ibck ,minimized when running

    opt=sys.argv[2]

    os.chdir(sys.argv[1])

    format=['rar','zip','7z','ace','arj','bz2','cab','gz','iso','jar','lzh','tar','uue','z']

    for file in os.listdir('.'):

    if os.path.isfile(file) and (os.path.splitext(file)[1][1:].lower() in format)==True:

    if opt=='mkdir':

    cmd='winrar x -ibck "'+file+'"'+' "'+os.path.splitext(file)[0]+'"\\'

    os.system(cmd)

    elif opt=='direct':

    cmd='winrar x -ibck "'+file+'"'

    os.system(cmd)

    玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/code/text-file/tf2643.html

    相关文章 Recommend

    展开全文
  • python读取excel文件例子,看上去功能挺强悍。Excel 商户号添加小工具使用说明:该工具只支持Excel文件格式,Execl文件后缀xls或者xlsx文件。如果文件为csv,请使用时Excel另存功能将它转换问xls或者xlsx文件。 ...
  • python压缩文件与解压缩文件资料收集,课外练习需要
  • python压缩文件夹内所有文件为zip文件的方法本文实例讲述了python压缩文件夹内所有文件为zip文件的方法。分享给大家供大家参考。具体如下:用这段代码可以用来打包自己的文件夹zip,我就用这段代码来备份import ...
  • /usr/bin/env python# Filename: backup_ver1.py import osimport time # 1. The files and directories to be backed up are specified in a list.#source=[‘/home/swaroop/byte’,’/home/swaroop/bin’]source=...
  • Q1 :如何解压 rar 压缩包文件? A : Step1:检查是否有 rarfile 第三方库,若没有该模块,则需要进行安装 ; Step2:参考代码如下: import rarfile import os rar=rarfile.RarFile(filename, mode='r'&#...
  • python解压rar文件.zip

    2019-08-13 14:57:54
    python解压rar文件(内含windows/linux安装方式及文件), 通过unrar进行解压后将数据进行指定文件类型筛选(.doc/.docx等)并通过文件名相似度进行文件匹配
  • 博主在前两篇博文分别介绍了加密RAR文件的解压https://www.cnblogs.com/kangbazi666/p/13646308.html和加密ZIP文件的解压https://www.cnblogs.com/kangbazi666/p/13666783.html,后面又开始尝试了两类文件的加密压缩...
  • tar, gz压缩import os, ...#如果只打包不压缩,将"w:gz"参数改"w:"或"w"即可。def make_targz(output_filename, source_dir):with tarfile.open(output_filename, "w:gz") as tar:tar.add(source_dir, arcnam...
  • python zip文件 压缩

    2021-01-20 04:58:36
    1)简单应用 如果你仅仅是希望用python来做压缩和解压缩,那么就不用去翻文档了,这里提供一个简单的用法,让你一看就能明白。 import zipfile f = zipfile.ZipFile(‘filename.zip’, ‘w’ ,zipfile.ZIP_...
  • python实现文件(夹)的压缩与解压
  • 我们在日常工作中,除了会涉及到使用Python处理文本文件,有时候还会涉及对压缩文件的处理。 通常会涉及到的压缩文件格式有: •rar:Windows 环境下用的比较多的压缩,比较著名的GUI工具是winrar •tar: Linux系统...
  • python实现rar解压和压缩

    千次阅读 2021-09-09 09:08:11
    python解压rar格式文件,需要安装rarfile模块,去网上下载rarfile,我这里下载的是rarfile-2.4.tar.gz,解压还需要对应的UnRAR.exe 2、工具安装 将rarfile-2.4.tar.gz拷贝到python安装路径的Scripts目录下: cmd...
  • 由于并不清楚服务器具体地址,只有jupyter ...### 利用zipfile模块来压缩和解压文件 先将想要上传的多个文件压缩为.zip格式,在jupyter notebook中上传压缩后的文件后再用python 的zipfile函数模块压缩就可以了
  • 主要介绍了Python实现多级目录压缩与解压文件的方法,涉及Python针对文件路径的遍历、判断以及文件压缩、解压缩等相关操作技巧,需要的朋友可以参考下
  • Python压缩文件详解

    千次阅读 2020-12-02 16:03:11
    1 压缩1.1 创建zipfile对象zipfile.ZipFile(file, mode=‘r‘, compression=0, allowZip64=True, compresslevel=None)创建Zipfile对象,主要参数:1>file压缩包名称;2>mode:读‘r‘或者写‘w‘模式;3>...
  • # 源码:https://github.com/matiasb/python-unrar # 下载UnRAR.dll https://www.rarlab.com/rar_add.htm # 配置UnRAR.dll位置 # 在系统变量里配置 # UNRAR_LIB_PATH = C:\Program Files (x86)\UnrarDLL\x64\UnRAR64...
  • Python读写压缩文件的方法

    千次阅读 2020-11-21 03:41:59
    问题你想读写一个gzip或bz2格式的压缩文件。解决方案gzip 和bz2模块可以很容易的处理这些文件。 两个模块都 open()函数提供了另外的实现来解决这个问题。 比如,为了以文本形式读取压缩文件,可以这样做:# gzip ...
  • python串口传输.rar

    2019-09-06 18:09:32
    python串口通信,读取文件内容并通过串口传输至接收程序。
  • [Python] 读取 rar/zip 压缩文件

    千次阅读 2019-10-29 18:30:39
    读取 rar 文件 Pythonpython-unrar 模块依赖于 UnRAR library, 所有先安装 UnRAR library 1. 安装 UnRAR library 在官网可以找到各种版本的安装包, 下面给出 Linux 版安装的说明 $ cd ~ $ wget ...
  • Python压缩文件操作

    2021-10-09 10:41:16
    前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试...压缩文件 tar linu

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,617
精华内容 2,646
关键字:

python压缩文件为rar

友情链接: possys.rar