fasta转csv——正则表达式高效实现

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秒,效率尚可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值