在 Python 中使用字符串而不是字节遍历 gzip 对象



根据文件的扩展名,我在上下文管理器中使用不同的打开器,如下所示:

if args.vcf_in.endswith(".gz"):
dopenf = gzip.open
mode = "rb"
else:
openf = open
mode = "rt"

不幸的是,当我尝试在一种情况下遍历对象时,它是字节和另一种字符串,并且代码失败:

with openf(args.vcf_in, mode) as fin:
for line in fin:
count += 1
print(line)
if line.startswith("#"):

有没有办法遍历 gzip 文件,以便输出的行是字符串?我知道我可以检查它们是否是字节并解码它们,但我很好奇是否有更好的方法使用开瓶器或 io 包。

谢谢!

也许我在这里误解了一些东西,但是如果你的gzip文件是一个文本文件,你应该能够简单地用mode='r'(不是'rb'(调用gzip.open((来代替标准的open((。不需要所有的io类。

最新更新