如何过滤txt中##开头的行并将内容转换为pandas DataFrame
最优实现方案
不需要依赖系统命令、不用生成中间文件的跨平台方案如下:
实现代码
import pandas as pd from io import StringIO # 替换为你的VCF文件路径 vcf_file_path = "File_name" # 逐行读取过滤掉##开头的元信息行 with open(vcf_file_path, 'r', encoding='utf-8') as f: filtered_lines = [line for line in f if not line.startswith("##")] # 将过滤后的内容包装为类文件对象,直接传入pandas读取 vcf_content = StringIO(''.join(filtered_lines)) df = pd.read_csv(vcf_content, sep="\t")
方案说明
- 全程在内存中处理,无额外中间文件生成,读写效率更高
- 纯Python原生实现,兼容Windows、macOS、Linux全平台
- 自动保留以
#CHROM开头的表头行,无需手动指定列名
内容的提问来源于stack exchange,提问作者Manolo Dominguez Becerra
相关产品推荐
相关产品推荐

