import zipfile
# 传入压缩文件zfilezip获取相关信息
zip_file = zipfileZipFile('zfilezip')
# 获取压缩文件中的内容
f_content = zip_filenamelist()
# 压缩前的大小
f_size = zip_filegetinfo('zfile/atxt')file_size
# 压缩后的大小
c_size = zip_filegetinfo('zfile/atxt')compress_size
ZipFile 对象有一个 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夹 的字符串的列表。这些字符串可以传递给 ZipFile 对象的 getinfo()方法,返回一个关 于特定文件的 ZipInfo 对象。ZipInfo 对象有自己的属性,诸如表示字节数的 file_size 和 compress_size,它们分别表示原来文件大小和压缩后文件大小。ZipFile 对象表示 整个归档文件,而 ZipInfo 对象则保存该归档文件中每个文件的有用信息。
从 ZIP 文件中解压缩
ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当 前工作目录中。
import zipfile
zip_file = zipfileZipFile('zfilezip')
# 解压
zip_extract = zip_fileextractall()
zip_extractclose()
运行这段代码后, examplezip 的内容将被解压缩到 C:\。 或者, 你可以向 extractall()传递的一个文件夹名称,它将文件解压缩到那个文件夹,而不是当前工作 目录。如果传递给 extractall()方法的文件夹不存在,它会被创建。例如,如果你用 exampleZipextractall('C:\ delicious')取代处的调用,代码就会从 examplezip 中解压 缩文件,放到新创建的 C:\delicious 文件夹中。
ZipFile 对象的 extract()方法从 ZIP 文件中解压缩单个文件。
创建和添加到 ZIP 文件
要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w' 作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指 的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添 加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压 缩文件。可以总是将这个值设置为 zipfileZIP_DEFLATED(这指定了 deflate 压缩 算法,它对各种类型的数据都很有效)。
import zipfile
zip_file = zipfileZipFile('newzip','w')
# 把zfile整个目录下所有内容,压缩为newzip文件
zip_filewrite('zfile',compress_type=zipfileZIP_DEFLATED)
# 把ctxt文件压缩成一个压缩文件
# zip_filewrite('ctxt',compress_type=zipfileZIP_DEFLATED)
zip_fileclose()
这段代码将创建一个新的 ZIP 文件,名为 newzip,它包含 spamtxt 压缩后的内容。
要记住,就像写入文件一样,写模式将擦除 ZIP 文件中所有原有的内容。如果 只是希望将文件添加到原有的 ZIP 文件中,就要向 zipfileZipFile()传入'a'作为第二 个参数,以追加模式打开 ZIP 文件。
"""an example for usage zipfile to find file and extract
"""
import zipfile
package = zipfileZipFile(r"dbpackageszip")
for f in packagenamelist():
if fendswith("db"):
print f
packageextract(packagegetinfo(f))
import subprocess
import zipfile as zf
import platform as pf
import os
class ZipObj():
def __init__(self, filepathname, passwd,tip_path):
selffilepathname = filepathname #文件名
selfpasswd = passwd #压缩密码
selfTip_Path = tip_path #注释
def enCrypt(self, deleteSource=False):
# """
# 压缩加密,并删除原数据
# window系统调用rar程序
#
# linux等其他系统调用内置命令 zip -P123 tar source
# 默认不删除原文件
# """
target = "bzip"
source = selffilepathname
if pfsystem() == "Windows":
# rar a -p">
# -- coding: utf-8 --
#!/usr/bin/env python
import docx
import zipfile
from StringIO import StringIO
from processing_unitsxml_processing_unit import XmlProcessingUnit
import doc_utils
if __name__ == '__main__':
m = docxopendocx('e:/testdocx')
p = XmlProcessingUnit('docx')
process = pprocess(m)
zfile = zipfileZipFile('e:/testdocx')
out_docx_file = StringIO()
doc_utilssave_docx(zfile, process, out_docx_file)
out_txt_file = StringIO()
doc_utilsdocx_to_txt(out_docx_file, out_txt_file)
'''
out_file = StringIO()
with zipfileZipFile(out_file, 'w', compression=zipfileZIP_DEFLATED) as f:
fwritestr('test123docx', out_docx_filegetvalue())
#fwritestr('%stxt' % out_file, out_txt_filegetvalue())
'''
zfile2 = zipfileZipFile('e:/testzip', 'w', zipfileZIP_DEFLATED)
zfile2writestr('testdocx', out_docx_filegetvalue())
#zfile2writestr('testtxt', out_txt_filegetvalue())
#result = out_filegetvalue()
#print result
out_docx_fileclose()
out_txt_fileclose()
#out_fileclose()
中间缺少一个函数,这个自己找吧
#!/usr/bin/env python3
import os,zipfile
def Zip(target_dir):
target_file=ospathbasename(osgetcwd())+'zip'
zip_opt=input("Will you zip all the files in this dir(Choose 'n' you should add files by hand)y/n: ")
while True:
if zip_opt=='y': #compress all the files in this dir
filenames=oslistdir(osgetcwd()) #get the file-list of this dir
zipfiles=zipfileZipFile(ospathjoin(target_dir,target_file),'w',compression=zipfileZIP_DEFLATED)
for files in filenames:
zipfileswrite(files)
zipfilesclose()
print("Zip finished!")
break
elif zip_opt=='n': #compress part of files of this dir
filenames=list(input("Please input the files' name you wanna zip:"))
zipfiles=zipfileZipFile(ospathjoin(target_dir,target_file),'w',compression=zipfileZIP_DEFLATED)
for files in filenames:
zipfileswrite(files)
zipfilesclose()
print("Zip finished!")
break
else:
print("Please in put the character 'y' or 'n'")
zip_opt=input("Will you zip all the files in this dir(Choose 'n' you should add files by hand)y/n: ")
def Unzip(target_dir):
target_name=input("Please input the file you wanna unzip:")
zipfiles=zipfileZipFile(target_name,'r')
zipfilesextractall(ospathjoin(target_dir,ospathsplitext(target_name)[0]))
zipfilesclose()
print("Unzip finished!")
def main():
opt=input("What are you gonna doZip choose 'y',unzip choose 'n'y/n: ")
while True:
if opt=='y': #compress files
zip_dir=input("Please input the absdir you wanna put the zip file in:")
Zip(zip_dir)
break
elif opt=='n': #unzip files
unzip_dir=input("Please input the absdir you wanna put the zip file in(Nothing should be done if you wann unzip files in the current dir):")
if unzip_dir=='':
Unzip(osgetcwd())
else:
Unzip(unzip_dir)
break
else:
print("Please input the character 'y' or 'n'")
opt=input("What are you gonna doZip choose 'y',unzip choose 'n'y/n: ")
if __name__=='__main__':
main()
解压和压缩都有,自己稍微改改解压的文件名就行了
以上就是关于用python解压图片并打印代码全部的内容,包括:用python解压图片并打印代码、Python如何将文件里的文件解压并输出、python自动化全程班解压等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)