import pandas as pd
import re
import timeit
'''记录代码执行时间 1/2'''
start = timeit.default_timer()
'''正则表达式'''
pattern_title = re.compile(r'^>.*', re.M)
pattern_n = re.compile(r'\n')
'''读取文件内容'''
with open('文件名.fasta', 'r', encoding='utf-8') as f:
text = f.read()
'''按标题行切分'''
data = re.split(pattern_title, text)
'''去除所有换行符'''
data2 = [re.sub(pattern_n, '', i) for i in data]
'''保存文件,此处可根据需要自由发挥'''
data2 = pd.DataFrame(data2[1:]) #第一行是空行,需要去掉
data2.to_csv('新的文件名.csv', header=False, index=False)
print(len(data2))
'''记录代码执行时间 2/2'''
end = timeit.default_timer()
time = end - start
print(time)
75776
1.1467811
7万条fasta数据完成转换需要1秒,效率尚可。