使用Python3的VCFPy包报错:'str'对象无'readline'属性
解决VCFPy在Ubuntu 22.04下的AttributeError问题
错误原因
你遇到的AttributeError: 'str' object has no attribute 'readline',本质是vcfpy.Reader的入参要求是文件流对象,而非直接传入字符串格式的文件名。代码里直接传递"example_file.vcf"这个字符串,Reader会误将其当成流对象调用readline()方法,因此触发报错。
两种解决方法
方法1:手动打开文件后传入Reader
用with语句管理文件资源,确保文件自动关闭,修改代码如下:import vcfpy with open("example_file.vcf", "r") as f: reader = vcfpy.Reader(f)方法2:使用VCFPy官方便捷方法
from_path
VCFPy提供了直接从路径创建Reader的封装方法,代码更简洁:import vcfpy reader = vcfpy.Reader.from_path("example_file.vcf")
额外检查
如果修改后仍报错,确认文件路径是否正确:要么保证example_file.vcf在当前工作目录下,要么传入绝对路径(如/home/your_username/data/example_file.vcf)。
内容的提问来源于stack exchange,提问作者tkow
相关产品推荐
相关产品推荐

