Skip to main content
 首页 » 编程设计

python之无法在 Python 中的 gzip 文件中执行基于正则表达式的操作

2024年12月31日52bhlsheji

我有一个包含多个字符串的 .gz 文件。我的要求是我必须对 .gz 文件中包含的数据执行几个基于正则表达式的操作

当我在提取的数据行中使用 re.findall() 时出现错误

File "C:\Users\santoshn\AppData\Local\Continuum\anaconda3\lib\re.py", line 182, in search 
    return _compile(pattern, flags).search(string) 
 
TypeError: cannot use a string pattern on a bytes-like object 

我尝试使用选项“r”打开,结果相同。

我必须先解压这个文件然后再做正则表达式操作还是有办法解决这个问题?

数据包含几行文本,下面列出了一个示例行:

ThreadContext 432 mov (8) <8;1,2>r2  <8;3,3>r4 Instruction count 

请您参考如下方法:

我能够通过使用 gzip.open() 读取文件来解决这个问题

使用 gzip.open(file,"rb") 作为 f: binFile = f.readlines()

读取此文件后,文件中的每一行都将转换为“ascii”。随后,所有正则表达式操作(如 re.search() 和 re.findall())都可以正常工作。

for line in binFile: # 遍历每一行 line = line.strip().decode('ascii')