PyVCF:检查空文件

时间:2015-04-24 09:25:53

标签: python

我正在使用PyVCF python包来解析vcf文件。这是读取vcf文件的命令:

vcf_reader = vcf.Reader(open('file.vcf', 'r'))

在下游之前,我想检查一下vcf_reader是否有数据,即file.vcf里面有记录。 我怎么检查呢?

对不起,我真的很擅长python,我刚刚开始,我试图在谷歌上寻找它,但没有成功。

谢谢。

1 个答案:

答案 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>]

并且没有输出。