有没有一种简单的方法可以从tar
文件中提取文本文件作为python 3.4或更高版本中文本I / O的文件对象?
我正在将python2代码修改为python3,我发现TarFile.extractfile
用于返回带有文本I / O的文件对象,现在返回一个io.BufferedReader
对象,它似乎有二进制I / O.我的代码的另一部分需要文本I / O,我需要以某种方式吸收这种变化。
我能想到的一种方法是使用TarFile.extract
并将文件写入目录,然后通过open
函数打开它,但我想知道是否有办法获取文本I / O直接流。
答案 0 :(得分:1)
尝试io.TextIOWrapper
打包io.BufferedReader
。
答案 1 :(得分:0)
你可以使用getmembers()
import tarfile
tar = tarfile.open("test.tar")
tar.getmembers()
之后,您可以使用extractfile()将成员提取为文件对象。只是一个例子
import tarfile,os
import sys
os.chdir("/tmp/foo")
tar = tarfile.open("test.tar")
for member in tar.getmembers():
f=tar.extractfile(member)
content=f.read()
// do operations with your content
sys.exit()
tar.close()