繁体   English   中英

如何在python中解析文件并写入输出文件

[英]how to parse a file and write to an output file in python

我是python的新手。 我正在尝试解析文件以提取某些列并写入输出文件。 我能够解析并提取所需的列,但是将它们写入输出文件时遇到了麻烦。

这是原始测试文件:

EGW05759        Pld5    I79_005987      GO_function: GO:0003824 - catalytic activity [Evidence IEA]; GO_process: GO:0008152 - metabolic process [Evidence IEA]                                  
EGW05760        Exo1    I79_005988      GO_function: GO:0003677 - DNA binding [Evidence IEA]; GO_function: GO:0003824 - catalytic activity [Evidence IEA]; GO_function: GO:0004518 - nuclease activity [Evidence IEA]; GO_process: GO:0006281 - DNA repair [Evidence IEA] 

这是我的python代码

f = open('test_parsing.txt', 'rU')
f1 = open('test_parsing_out.txt', 'a')
for line in f:
   match = re.search('\w+\s+(\w+)\s+\w+\s+\w+\:', line)
   match1 = re.findall('GO:\d+', line)
   f1.write(match.group(1), match1)
f1.close()

基本上我希望输出看起来像这样(尽管我知道我的代码还不完整)

Pld5 GO:0003824:GO:0008152
Exo1 GO:0003677:GO:0003824:GO:0004518:GO:0006281

谢谢

Upendra

f = open('test_parsing.txt', 'rU')
f1 = open('test_parsing_out.txt', 'a')
for line in f:
    match = re.search('\w+\s+(\w+)\s+\w+\s+\w+\:', line)
    match1 = re.findall('GO:\d+', line)
    f1.write('%s %s \n'%(match.group(1), ''.join(match1)))
f1.close()

使用csv模块:

import csv, re

with open('test_parsing.txt', 'rU') as infile, open('test_parsing_out.txt', 'a') as outfile:
    reader = csv.reader(infile, delimiter="\t")
    for line in reader:
        result = line[1] + " " + ':'.join(re.findall("GO:\d{6}", line[3]))
        outfile.write(result + "\n")

# OUTPUT
Pld5 GO:000382:GO:000815
Exo1 GO:000367:GO:000382:GO:000451:GO:000628

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM