2014-11-05 69 views
-2

输入文件:如何使用Python3读取多行输入作为单个输入?

>sp|P31946|1433B_HUMAN 14-3-3 protein beta/alpha OS=Homo sapiens GN=YWHAB PE=3 SV=3 
MTMDKSELVQKAKLAEQAERYDDMAAAMKAVTEQGHELSNEERNLLSVAYKNVVGARRSS 
WRVISSIEQKTERNEKKQQMGKEYREKIEAELQDICNDVLELLDKYLIPNATQPESKVFY 
>sp|P62258|1433E_HUMAN 14-3-3 protein epsilon OS=Homo sapiens GN=YWHAE PE=1 SV=1 
MDDREDLVYQAKLAEQAERYDEMVESMKKVAGMDVELTVEERNLLSVAYKNVIGARRASW 
RIISSIEQKEENKGGEDKLKMIREYRQMVETELKLICCDILDVLDKHLIPAANTGESKVF 

预期输出:

SP | P62258 | 1433E_HUMAN 14-3-3蛋白εOS =智人GN = YWHAE PE = 1 SV = 1 MDDREDLVYQAKLAEQAERYDEMVESMKKVAGMDVELTVEERNLLSVAYKNVIGARRASW RIISSIEQKEENKGGEDKLKMIREYRQMVETELKLICCDILDVLDKHLIPAANTGESKVF

到目前为止写下的代码:

#!/usr/bin/python 

import re 

fh = open("test_seq") 
for line in fh: 
    if line.startswith('>'): 
     if re.search('PE=1',line): 
      print line 
+0

你要什么与一般的输入数据呢?举一个例子不说。 – zegkljan 2014-11-05 07:01:30

+0

我想分析数据..所以输出文件包含标题和序列。我只能用我的代码获取标题行。谢谢 – user3690643 2014-11-05 07:38:01

回答

0

将这些行追加到一起,然后它们将作为单个字符串运行。

0

这个怎么样:

with open("test_seq", 'rb') as fh: 
    print_line = False 
    for line in fh: 
     if line.startswith('>'): 
      if re.search('PE=1',line): 
       print_line = True 
      else: 
       print_line = False 
     if print_line: 
      print line 
+0

我想分析数据..所以输出文件包含标题和序列。我只能用我的代码获取标题行。谢谢 – user3690643 2014-11-05 07:38:34

+0

你确定我的代码不会给出序列吗? – conrad 2014-11-06 02:57:33