import csv
with open('E:\泛基因组分析\ORF\ORFHMMERextrct\ORF_FAS\ORF4.fasta', 'r') as f: # 读取所有行 lines = f.readlines()
output = [['id'] + list(range(1, len(lines[1].strip()) + 1))] currentid = '' currentseq = []
for line in lines: line = line.strip() # 去掉行末尾的换行符 # 如果是一个新的序列的id行 if line.startswith('>'): # 如果之前已经读取了一个序列的id和序列 if currentid != '': # 将当前的id和序列添加到输出列表中 output.append([currentid] + current_seq)
# 重置当前id和序列
current_id = ''
current_seq = []
# 获取新的序列的id
current_id = line.strip()[1:]
# 如果是一个序列行
else:
# 将碱基添加到当前序列中
nucleotides = list(line.strip())
nucleotides_with_spacer = ', '.join(nucleotides)
current_seq.append(nucleotides_with_spacer)
output.append([currentid] + [''] + currentseq[:-1] + [current_seq[-1].replace(',','')])
output.append([])
with open('E:\泛基因组分析\ORF\ORFHMMERextrct\ORFFAS\output.csv', 'w', newline='') as f: writer = csv.writer(f, delimiter='\t', quoting=csv.QUOTENONE) writer.writerows(output)
这个脚本要把碱基一个一个的分开 为什么最后一行没有被分开