首页 > 解决方案 > 打开压缩文件,三个管道(“|||”)后面的字符不可见

问题描述

我的输入文件是一个包含基因组信息的压缩文件。我正在尝试逐行解析内容并遇到了一个奇怪的问题。

任何给定的行看起来像这样:

AC=26;AF=0.00519169;AN=5008;NS=2504;DP=17308;EAS_AF=0;AMR_AF=0.0072;AFR_AF=0.0015;EUR_AF=0.0109;SAS_AF=0.0082;AA=A|||;VT=SNP

但是,当我打印出正在读取的内容时...

import gzip
with gzip.open(myfile.gz, 'rt') as f:
for line in f:
    print(line)

该行如下所示:

AC=26;AF=0.00519169;AN=5008;NS=2504;DP=17308;EAS_AF=0;AMR_AF=0.0072;AFR_AF=0.0015;EUR_AF=0.0109;SAS_AF=0.0082;AA=A|||

“|||”之后的任何信息 已被截断。

此外,我什至无法搜索“|||”后面的字符串 (例如"VT=SNP" in line总是返回 False)我也不能line.strip("|||")

关于是什么原因或我需要查看什么的任何建议?

感谢您的任何帮助

编辑:好的,看起来 gzip 文件有问题。我解压缩它,脚本运行良好。然后我重新压缩它,脚本再次运行良好(使用 gzip.open)。是否有任何直接的方法来比较两个压缩文件(即,一个没有被正确读取的文件与一个工作的文件),以便我可以得到根本原因的提示?

标签: python-3.xgzip

解决方案


推荐阅读