如何从.tar文件中的.txt文件中读取特定信息,而不用完全解压缩python3

时间:2018-09-29 10:49:37

标签: python-3.x tar archive

我有很多(例如1000个).bz2文件,每个文件(200-50Mb)内部包含4个.txt(.dat)文件,如何从.txt(dat)s中读取某些特定信息而不进行解压缩?我只是python 3的初学者,所以请给我一些帮助或有用的例子。谢谢。

我编写的代码实际上在temp文件夹中解压缩了.txt,但是处理170Mb tar需要大约40秒的时间。。。。。。。。。。。。

import bz2
import os
import tempfile
import shutil

pa = '/home/user/tar' #.tar(s) location
fds = sorted(os.listdir(pa))
i = 0
for bz in fds:
    path = os.path.join(pa, tar)
    i +=1
    archive = bz2.BZ2File(path, 'r')
    tmpdir = tempfile.mkdtemp(dir=os.getcwd())
    bz2.decompress('example.txt', path=tmpdir)
    path_to_my_file = os.path.join(tmpdir, 'example.txt')
    here goes some simple manupulation with my .txt (like print smthg)
    shutil.rmtree(tmpdir)

0 个答案:

没有答案