匹配两个文件之间的行并标记匹配的字符串

2024-05-20 20:21:26 发布

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

给定两个文件A和B,在匹配两个文件时,是否有方法编辑B中与A中的字符串重叠的字符串的字体、颜色等?不匹配的字符串应该保持原样,因此输出文件的长度应该与输入文件相同。你知道吗

示例:

文件A

 NM_134083  mmu-miR-96-5p   NM_134083       0.96213 -0.054
 NM_177305  mmu-miR-96-5p   NM_177305       0.95707 -0.099
 NM_026184  mmu-miR-93-3p   NM_026184       0.9552  -0.01

文件B

 NM_134083
 NM_177305
 NM_17343052324

输出

 **NM_134083**  mmu-miR-96-5p   **NM_134083**       0.96213 -0.054
 **NM_177305**  mmu-miR-96-5p   **NM_177305**       0.95707 -0.099

Tags: 文件方法字符串编辑示例颜色字体mir
1条回答
网友
1楼 · 发布于 2024-05-20 20:21:26

提供原始文本,但不指定要执行的格式。不考虑格式细节,是的,您可以将FileA中的文本替换为格式化内容,而FileB中的文本也是格式化内容。你知道吗

import re
with open('fileA.txt') as A:
    A_content=[x.strip() for x in A]
with open('fileB.txt') as B:
    B_content=[x.strip() for x in B]
output=[]
for line_A in A_content:
    for line_B in B_content:
        #do whatever formatting you need on the text, 
        # I am just surrounding it with *'s here

        replace = "**" + line_B + "**"

        #use re.sub, 
        # details here: https://docs.python.org/2/library/re.html#re.sub

        line_A = re.sub(line_B, replace , line_A)
    #I am adding everything to the output array but you can check if it is 
    # different from the initial content. I leave that for you to do
    output.append(line_A)

输出

**NM_134083**  mmu-miR-96-5p   **NM_134083**       0.96213 -0.054
**NM_177305**  mmu-miR-96-5p   **NM_177305**       0.95707 -0.099
NM_026184  mmu-miR-93-3p   NM_026184       0.9552  -0.01

相关问题 更多 >