我正在使用PyVCF python包来解析vcf文件。这是读取vcf文件的命令:
vcf_reader = vcf.Reader(open('file.vcf', 'r'))
在下游之前,我想检查一下vcf_reader是否有数据,即file.vcf里面有记录。 我怎么检查呢?
对不起,我真的很擅长python,我刚刚开始,我试图在谷歌上寻找它,但没有成功。
谢谢。
答案 0 :(得分:1)
您可以在执行任何操作之前使用os.stat检查文件大小:
from os import stat
if stat("file.vcf").st_size != 0
或者使用迭代器检查任何不以#
开头的行,并在调用Reader之前将文件对象重置为start:
with open('file.vcf', 'r') as f:
if any(not line.startswith("#") for line in f):
f.seek(0)
vcf_reader = vcf.Reader(f)
仅使用元数据进行测试:
[<vcf.model._Record object at 0x7f2f95c68eb8>, <vcf.model._Record object at 0x7f2f95c7b9b0>, <vcf.model._Record object at 0x7f2f95c7ba58>, <vcf.model._Record object at 0x7f2f95c7bb38>, <vcf.model._Record object at 0x7f2f95c7bf60>]
并且没有输出。