我正在尝试从多个文件中读取行。有些是 gzip 压缩的,有些是纯文本文件。在Python 2.7中,我一直在使用以下代码并且它有效:
for line in fileinput.input(filenames, openhook=fileinput.hook_compressed):
match = REGEX.match(line)
if (match):
# do things with line...
现在我转移到Python 3.8,它仍然可以正常处理纯文本文件,但是当它遇到gzipped文件时,我收到以下错误:
TypeError: cannot use a string pattern on a bytes-like object
解决这个问题的最佳方法是什么?我知道我可以检查是否line是一个字节对象并将其解码为字符串,但我宁愿使用一些标志来自动始终将行迭代为字符串(如果可能);而且,我更喜欢编写同时适用于 Python 2 和 3 的代码。
繁花不似锦
GCT1015
相关分类