gpt4 book ai didi

python - 从分隔的行创建列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:30 26 4
gpt4 key购买 nike

我有这样的数据:

-HI5UHB101EPGLJ rank=0000024 x=1813.0 y=437.0 length=81
ACGTAGATCGTGTAGCTGAGGATGTTGACAACCATGTGGACAGAGCCTCACCATCAACAT
CCTCAGCTACACGATCTGCGT
-HI5UHB101BDVPE rank=0000032 x=451.5 y=48.0 length=73
ACGTAGATCGTCTTGAGTGATTACAGATCTAATACAATGTGCAGTCTAGCTAGATGTTAT
TCTATATATATAC
-HI5UHB101AL8KC rank=0000049 x=136.0 y=586.0 length=58
ACGTAGATCGTCTCGGCTAGTAGACGAGCCATCGTCTACTAGCCGAGACGATCTGCGT

如何将其制作成如下所示的 csv 表:

'HI5UHB101EPGLJ', 'rank=0000024', 'x=1813.0', 'y=437.0', 'length=81','ACGTAGATCGTGTAGCTGAGGATGTTGACAACCATGTGGACAGAGCCTCACCATCAACATCCTCAGCTACACGATCTGCGT'
'HI5UHB101BDVPE', 'rank=0000032', 'x=451.5', 'y=48.0', 'length=73', 'ACGTAGATCGTCTTGAGTGATTACAGATCTAATACAATGTGCAGTCTAGCTAGATGTTATTCTATATATATAC'
'HI5UHB101AL8KC', 'rank=0000049', 'x=136.0', 'y=586.0', 'length=58', 'ACGTAGATCGTCTCGGCTAGTAGACGAGCCATCGTCTACTAGCCGAGACGATCTGCGT'

我的主要问题是在“长度”之后有一个换行符 (\n) 然后字母序列本身有换行符 (\n)当我需要他们加入时。字母序列有不同的长度,这导致序列行的数量可变。

如有任何帮助,我们将不胜感激。这将在一个巨大的文件上运行。

最佳答案

使用生成器函数通过起始 - 检测新条目:

def per_section(iterable):
row = []
for line in iterable:
if line.startswith('-'):
if row:
yield row
row = line[1:].split() + ['']
else:
row[-1] += line.strip()
if row:
yield row

这会产生完整的重组部分,准备写入 CSV。

with open(inputfile) as infile, open(outputfile, 'wb') as outfile:
csvwriter = csv.writer(outfile)
csvwriter.writerows(per_section(infile))

对于您的样本输入,产生:

HI5UHB101EPGLJ,rank=0000024,x=1813.0,y=437.0,length=81,ACGTAGATCGTGTAGCTGAGGATGTTGACAACCATGTGGACAGAGCCTCACCATCAACATCCTCAGCTACACGATCTGCGT
HI5UHB101BDVPE,rank=0000032,x=451.5,y=48.0,length=73,ACGTAGATCGTCTTGAGTGATTACAGATCTAATACAATGTGCAGTCTAGCTAGATGTTATTCTATATATATAC
HI5UHB101AL8KC,rank=0000049,x=136.0,y=586.0,length=58,ACGTAGATCGTCTCGGCTAGTAGACGAGCCATCGTCTACTAGCCGAGACGATCTGCGT

关于python - 从分隔的行创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18367628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com