import os #handles the gzipped output like the example file
file_name = "exampleziptotxt.bed"
out_file_root = "example_by_chrom"
file_handle_dict = {}
file_reader=open(file_name)
for line in file_reader:
ff=line.strip().split(",")
chrom_name=ff[0]
if not (chrom_name in file_handle_dict):
out_file_chrom_name=out_file_root+"."+chrom_name+".bed"
out_file_chrom_name_handle=open(out_file_chrom_name,"w")
file_handle_dict[chrom_name]=out_file_chrom_name_handle
# write the line in the appropriate output file
file_handle_dict[chrom_name].write(line)
# file_handle_dict[chrom_name].write("%s\n"%"\t".join(ff))
file_reader.close()
# now close all open files
for chrom_name in file_handle_dict:
file_handle_dict[chrom_name].close()
我想重写上面的代码,以便使用gzip或其他方法输出多个gzip文件。我不确定如何做到这一点。任何帮助都将不胜感激
只需要一些小的更改,
import gzip
(不需要os
),在名称中添加.gz
,使用gzip.open
而不是open
进行写入,并在行中使用.encode()
将其转换为字节相关问题 更多 >
编程相关推荐