如何使用Python从几个.txt文件中提取文本?

时间:2014-09-05 04:50:45

标签: python python-3.x

我对编程和使用Python相对较新,我在这里找不到任何可以回答我问题的内容。基本上我要做的是提取大约150个不同的.txt文件的某个部分,并将每个部分收集到一个.txt文件中。

每个.txt文件都包含DNA序列比对数据,每个文件基本上读出了几十种不同的可能序列。我只对每个文件中的一个序列感兴趣,我希望能够使用脚本从所有文件中删除该序列,并将它们组合成一个文件,然后我可以将其输入到翻译的程序中序列成蛋白质代码。我真正要避免的是,必须逐个通过150个文件中的每一个,并将所需的序列复制/粘贴到软件中。

有谁知道我怎么做这个?谢谢!

编辑:我试图发布其中一个文本文件的图像,但显然我没有足够的“声誉”。

Edit2:大家好,我很抱歉我没有早点回复。我上传了图片,这是上传的链接:http://imgur.com/k3zBTu8

1 个答案:

答案 0 :(得分:0)

我假设您有150个fasta文件,并且在每个fasta文件中,您有序列ID,您希望它的序列。您可以使用Biopython模块执行此操作,将所有150个文件放在“C:\ seq_folder”等文件夹中(文件夹不应包含任何其他文件,并且不应打开txt文件)

import os
from Bio import SeqIO
from Bio.Seq import Seq

os.chdir('C:\\seq_folder') # changing working directory, to make it easy for python finding txt files 
seq_id=x # the sequence id you want the sequence
txt_list=os.listdir('C:\\seq_folder')
result=open('result.fa','w')
for item in txt_list:
   with open (item,'rU') as file:
     for records in SeqIO.parse(file,'fasta'):
          if records.id == seq_id:
               txt.write('>'+records.id+'\n')
               txt.write(str(records.seq)+'\n')
          else:
               continue
result.close()

此代码将生成一个fasta文件,其中包含来自所有文件的所需ID的序列,并将它们放在“result.fa”中。你也可以使用Biopythn模块将它们翻译成蛋白质。