python bz2模块

python bz2模块单次压缩和解压缩单次压缩(bz2.compress)In[40]:compressStr=’usebz2moduletocompressstring’In[41]:bz2.compress(compressStr,6)Out[41]:’BZh61AY&SY\xa5i\x9c”\x00\x00\x0f\x99\x80@\x00\x10\x00\x1e\xa7\xde\x

大家好,又见面了,我是你们的朋友全栈君。

单次压缩和解压缩

  • 单次压缩(bz2.compress)
In [40]: compressStr = 'use bz2 module to compress string'
In [41]: bz2.compress(compressStr,6)
Out[41]: 'BZh61AY&SY\xa5i\x9c"\x00\x00\x0f\x99\x80@\x00\x10\x00\x1e\xa7\xde\x10 \x001M2111\x08\x9ai\xa0h\xf56\xa3\xc3\x06.\x8fh\xf0S{\x83!KF{\xa4i\'\xe2\xeeH\xa7\n\x12\x14\xad3\x84@'
In [42]:
  • 单次解压缩(bz2.decompress)
In [43]: bz2.decompress('BZh61AY&SY\xa5i\x9c"\x00\x00\x0f\x99\x80@\x00\x10\x00\x1e\xa7\xde\x10 \x001M2111\x08\x9ai\xa0h\xf56\xa3\xc3\x06.\x8fh\xf0S{\x83!KF{\xa4i\'\xe2\xeeH\xa7\n\x12\x14\xad3\x84@')
Out[43]: 'use bz2 module to compress string'
In [44]:

创建一个bz2压缩文件

从字符串创建一个bz2压缩文件

#!/usr/bin/env python
import bz2
import os

linesep = os.linesep
compressStr = 'use bz2 module to compress string'
compressFilename = r'/tmp/test.bz2'

f = bz2.BZ2File(compressFilename, 'w', compresslevel=6)
f.write('%s%s' % (compressStr,linesep))

f.close()

测试

[root@control tmp]# python 1.py
[root@control tmp]# ls -l /tmp/test.bz2
-rw-r--r-- 1 root root 71 Jul 26 08:56 /tmp/test.bz2
[root@control tmp]# bzcat /tmp/test.bz2
use bz2 module to compress string
[root@control tmp]#

从一个文件创建bz2压缩文件

#!/usr/bin/env python
import bz2
import os

linesep = os.linesep
compressFilename = r'/tmp/test2.bz2'
compressFromFile = r'/etc/issue'

compressIn = open(compressFromFile, 'r')
compressOut = bz2.BZ2File(compressFilename, 'w', compresslevel=6)
compressOut.writelines(compressIn)

compressOut.close()
compressIn.close()

测试

[root@control tmp]# python 2.py
[root@control tmp]# ls -l /tmp/test2.bz2
-rw-r--r-- 1 root root 90 Jul 26 09:04 /tmp/test2.bz2
[root@control tmp]# bzcat /tmp/test2.bz2
CentOS release 6.5 (Final)
Kernel \r on an \m

[root@control tmp]#

使用shutil模块的copyfileobj方法实现类文件对象复制

#!/usr/bin/env python
import bz2
import shutil

compressFilename = r'/tmp/test3.bz2'
compressFromFile = r'/etc/issue'

compressIn = open(compressFromFile, 'r')
compressOut = bz2.BZ2File(compressFilename, 'w', compresslevel=6)

shutil.copyfileobj(compressIn, compressOut)

compressOut.close()
compressIn.close()

测试

[root@control tmp]# python 3.py
[root@control tmp]# ls -l /tmp/test3.bz2
-rw-r--r-- 1 root root 90 Jul 26 09:22 /tmp/test3.bz2
[root@control tmp]# bzcat /tmp/test3.bz2
CentOS release 6.5 (Final)
Kernel \r on an \m

[root@control tmp]#

查看bz2压缩文件的内容

#!/usr/bin/env python
import bz2

compressFilename = r'/tmp/test3.bz2'

f = bz2.BZ2File(compressFilename, 'r')

for eachLine in f:
    print eachLine,

f.close()

测试

[root@control tmp]# python 4.py
CentOS release 6.5 (Final)
Kernel \r on an \m

[root@control tmp]#
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134845.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月3日 上午9:00
下一篇 2022年5月3日 上午9:00


相关推荐

  • Python下载M3U8加密视频示例[通俗易懂]

    Python下载M3U8加密视频示例[通俗易懂]大家好,我是小小明。最近看到几个视频网站的地址依然是m3u8格式,不禁有了使用python进行下载的想法,虽然下载m3u8格式视频的工具很多,但如果我们自行编码就能应对更多的情况。关于m3u8的基础知识可以参考:Python实时下载B站直播间视频(M3U8视频流)下面我们将使用Python下载m3u8格式的加密离线视频流。游览器抓包过滤能够获取该影片的m3u8播放地址:首先,测试一下该地址:importm3u8headers={“User-Agent”:”Mozilla/

    2022年6月15日
    53
  • ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分

    ElasticSearch 2.0以后的改动导致旧的资料和书籍需要订正的部分

    2021年9月11日
    49
  • 震惊!2022 年秋招 Java 后端开发岗竟然一片红海!算法岗都不香了吗?

    据说,2022年算法岗遇冷,BAT暑期实习甚至收不到简历,Java反而爆炸。难道,Java的春天(映射Spring全家桶)又要来了吗?作为Java领域的优质创作者(见下图),又可以在CSDN横着走了吗?如何看待2022年秋招Java后端开发岗一片红海?这不仅让我想起脉脉上的一段话——来自某文豪。划重点:有后选后,无后选前无后无前,算法也甜条件允许,无脑后端前途无量,预定高管这里的后,Java后端敢称第二,没人敢称第一。为什么我敢这么肯定呢?从4个方面来说

    2022年4月14日
    112
  • 软件实施工程师的经验之谈(适合新手,老鸟请指正)[通俗易懂]

    软件实施工程师的经验之谈(适合新手,老鸟请指正)[通俗易懂]干了三年实施,技术没学多少,人倒是变的圆滑多了问题1:实施干嘛的呢?说简单通俗点,开发就是研发生产电视机的,我们实施就是给买电视机的人去进行安装调试,试运行完了签验收单收款和后期的日常维护(当然,如果大公司有自己的售后服务团队就另当别论了)问题2:实施的薪资(我想大部分人都关注这个吧)以一线城市北上广为例,我在北京,第一份实施工作月薪4500,出差补助一天一百,报销路费和住宿费,不报销吃饭…

    2022年6月2日
    66
  • 滑动touchmove touchend遇到的问题[通俗易懂]

    今天遇到一个问题,在优化touchmove时候使用了防抖,touchmove和touchend中都改变了元素的样式,问题就产生了。函数节流和防抖都是使用setTimeout做延时,当拖动动作完成之后会触发touchend,touchmove有延时,可能会造成touchend执行之后才执行了touchmove解决办法可以给touchend加一个setTimeout,delay大于节流或者防抖的时…

    2022年4月13日
    176
  • GO分析-GOseq的使用教程[通俗易懂]

    GO分析-GOseq的使用教程[通俗易懂]GOseq的介绍GOseq是一个R包,用于寻找GOterms,即基因富集分析。此方法基于Walleniusnon-centralhyper-geometricdistribution。相对

    2022年8月6日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号