当一个文档特别大的时候(比如wikidata等知识库的dump),往往会采用bz2或者gz对其进行压缩,方便下载,同时减少存储空间(bz2压缩率更高一些)。

那么,如何不用解压也能读取原来的文档呢?

读取bz2文件

请使用bz2file这个第三方模块!一定不要使用python自带的bz2模块!

因为python官方的bz2模块不能处理multi-stream files,而不少大文件都是用这种方式压缩的。所以,为了避免不必要的麻烦,统一使用bz2file这个第三方模块吧.

用这个模块将bz2文件打开后,可以类似于普通的文本文件一样处理,详细用法见上面链接中的Documentation

样例代码如下:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import bz2file

import os

if __name__ == "__main__":

inpath = os.path.join(".", "data", "wikidata-20151130-all.json.bz2")

infile = bz2file.open(inpath, "r")

for i in xrange(3):

print(infile.readline())

这里,假设我们将wikidata的dump存储在”./data”文件夹下。

首先,我们用bz2file.open打开bz2文件。这里”r”表示读,”w”表示写。

然后,我们读取这个文件的前三行。

读取gz文件

类似于bz2,使用python的gzip这个package即可

#!/usr/bin/python

# -*- coding: UTF-8 -*-

import gzip

import os

if __name__ == "__main__":

inpath = os.path.join(".", "data", "test.gz")

infile = gzip.GzipFile(inpath, "r")

for i in xrange(3):

print(infile.readline())

这里我们要读取data文件夹下的test.gz文件

通过GzipFile打开,之后通过readline读入即可

更多使用方法请参考gzip官方文档

python不解压直接提取文件_用python不解压的读取bz2文件和gz文件相关推荐

  1. python从视频中提取音频信号_通过python从音频文件中提取音频

    我认为你的问题有三个不同的部分: >如何将音频文件加载到python中? >如何计算python中的频谱? >如何处理频谱? 1.如何在python中加载音频文件? 使用scipy可 ...

  2. python从视频中提取音频信号_三行Python代码提取视频中的音频

    作者:小舟逝江海 http://suo.im/5yOtbx 写在开头 身处数据爆炸增长的时代,各种各样的数据都飞速增长,视频数据也不例外.我们可以使用 python 来提取视频中的音频,而这仅仅需要安 ...

  3. python从html中提取文本_使用Python从HTML中提取可读文本?

    我知道像html2text,BeautifulSoup等的utils,但问题是他们也提取javascript并将其添加到文本中,因此很难将它们分开. htmlDom = BeautifulSoup(w ...

  4. python读取nii文件_读取nii或nii.gz文件中的信息即输出图像操作

    读取nii或者nii.gz文件中的信息,并且输出图像. import matplotlib from matplotlib import pylab as plt import nibabel as ...

  5. 读取nii或nii.gz文件中的信息即输出图像

    读取nii或者nii.gz文件中的信息,并且输出图像. import matplotlib from matplotlib import pylab as plt import nibabel as ...

  6. python递归解压文件_递归调用解压zip包或rar包

    不知道有没有小伙伴跟我一样犯这样的懒,一些简单重复的工作,总是嫌麻烦,懒得一步步去做,还每次都重复一样的操作.比如解压zip或rar的包,也许你会说,不就解压嘛,有啥的.问题来了,如果只是一个简单的压 ...

  7. python怎么读取word文件_使用python编辑和读取word文档

    python调用word接口主要用到的模板为python-docx,基本操作官方文档有说明. 使用python新建一个word文档,操作就像文档里介绍的那样: 1 from docx importDo ...

  8. python只读打开文件_关于python:只读文件的第一行?

    如何使用python只得到文件的第一行作为字符串? 如果您已经阅读了文件("在阅读了文件之后"),那么您已经阅读了第一行!(假设至少有一行.) 请注意,现在所说的问题与原来的含义不 ...

  9. python脚本下载钉钉的文件_利用python下载钉钉群直播视频

    今年因为疫情的原因不能开学,所以很多学校都使用钉钉进行在线授课,但是在钉钉里面点击下载群直播回放的时候却发现: 真好,管理员设置了不允许下载回放. 这就完了吗?NoNoNo!既然正常途径下载不了,那么 ...

最新文章

  1. mysql平均分 面试_经典mysql面试题 - 学生成绩
  2. GDB 程序调试简单实践
  3. 恢复后缀phobos勒索病毒 解密成功 百分百恢复sql文件
  4. php strncmp,php strncmp函数怎么用?
  5. MATLAB——阈值分割(一)
  6. ITK:使图像的一部分透明化
  7. 【Zabbix】使用dbforbbix 2.2-beta监控Redhat 7.0上的Oracle、Mysql
  8. Flask框架-蓝图系统
  9. 我也来推荐一个强大的flash应用
  10. matlab 图像读取长宽_计算机视觉学习笔记1 图像读取显示和尺寸变换
  11. DevExpress 13.2.6源码、安装包、汉化包下载和教程
  12. 第十章 嵌入式linux的调试技术
  13. 《Redis视频教程》(p17)
  14. 在线词云工具生成词云图——Wordart的使用
  15. 史上最完整的Android开发工具集合(附带下载地址)
  16. 如何修改host文件
  17. 利用开区间覆盖的约简给出有限覆盖定理的一个新证明
  18. Linux下ps -ef 和 ps aux 的区别及格式详解
  19. 零时科技:DeFi 项目 Lendf.Me 遭黑客攻击复盘分析
  20. 【DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01).的解决方案】

热门文章

  1. 【橙子】C#Unity--3D迷宫
  2. 【LeetCode43:字符串相乘(大数相乘)(Java实现)】
  3. linux购物系统源码,2021.4月LooShop购物商城网站PHP源码运营打包版 PC+手机+微信三站合一 带支付宝微信等第三方在线支付功能...
  4. SpringCloud精妙的设计,你还不知道?
  5. --init--方法
  6. Maya:无法删除引用“没有与以下名称匹配的名称空间”
  7. 全篇干货系统集成项目管理工程师经验
  8. VM_VM虚拟机ip地址和主机一样
  9. iview@2.13.0/1版本,Table组件IE9不兼容的问题
  10. 基于likeadmin通用管理后台搭建—高校科研管理系统