我创建了一个可以从PyPI安装的Python库。它从 Python 包中打开一个二进制文件(资源(:
with importlib.resources.open_binary(package_name, 'file.txt') as f:
...
现在我决定将file.txt
压缩到file.txt.gz
.如果它在常规文件之外,我可以 用gzip
打开它
with gzip.open('file.txt.gz', 'rb') as f:
或带smart_open
:
with gzip.open('file.txt.gz', 'rb') as f:
但它住在图书馆里。在这种情况下如何打开.gz
文件?
这适用于Python 3.9和Pandas 1.5.1。我的熊猫文件是csv,并且已被gzip压缩。 熊猫的压缩参数让它知道该怎么做。
filename = 'file.csv.gz'
import gzip
with resources.open_binary("my.package.folder", filename) as fo:
data_out = pd.read_csv(fo, compression="gzip")
在您的情况下,使用更通用的"txt.gz",我们为什么不呢 寻找类似的方法。 我不知道你认为确切的正确答案是什么,但请考虑一下:
import gzip
with resources.open_binary("my.package.folder", filename) as fo:
with gzip.open(fo) as fo2:
yy = fo2.read()
zz = yy.decode("utf-8")
我几乎可以肯定zz
正是你想要的。