我有很多(例如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)