将字典与.txt文件关联

2024-05-16 22:28:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在file1中创建了一个contigs及其长度的字典。 我还有file2,它是表格格式的blast输出,它包含重叠对齐(但不是所有对齐)和一些附加信息,比如匹配开始和结束的位置等。 为了计算查询和主题覆盖率,我需要将file1中的长度与file2中的长度相关联。 怎么做? 谢谢


Tags: 信息主题字典格式覆盖率file1表格file2
2条回答

假设file1是:

contig1 134
contig2 354
contig3 345

你的剧本看起来像

import re

contigDict={}
with open('file1') as c1:
    text=c1.readlines()
for line in text:
    key,value = line.split()
    contigDict[key]=value
with open('file2') as c2:
    scrambled_text=c2.read()

contigs = re.findall(r'contig\d+',scrambled_text)
output = {}
for contig in contigs:
    output[contig]=contigDict[contig]
with open('file3',w) as w:
    for key in output.keys():
        w.write(key+'\t'+output[key]+'\n')

这是有效的

import re
r=open('result.txt','w')
subjectDict={}
with open('file1.txt') as c1:
    text=c1.readlines()
for line in text:
    key,value = line.split()
    subjectDict[key]=value
with open('file2.txt') as c2:
    lines=c2.readlines()
for line in lines:
    new_list=re.split(r'\t+',line)
    s_name=new_list[0]
    subjects = re.findall(r'contig\d+',s_name)
    output = {}
    for subject in subjects:
        output[subject]=subjectDict[subject]
        r.writelines(subjectDict[subject]+'\n')

相关问题 更多 >