读取两个文本文件并将文本从一个文件复制到另一个给定的满意条件

时间:2017-07-24 18:10:40

标签: python python-3.x

我有两个文本文件,A.txt和B.txt A.txt中的每一行都具有以下形式:

[Num]WordA1 WordA2 WordA3

B.txt中的每一行都具有以下形式:

WordB1 WordB2 [Num] WordB3 WordB4

我的想法是想找到A.txt中包含与B.txt中某行相同[Num]的行,并将B.txt中该行第四列中的字符串添加到第二列A.txt中的关联行。例如,假设A.txt包含

[32]Apple Banana Orange
[73]Kiwi Grape Lemon

而B.txt包含

Blue Red [32] Green Black
Red White [105] Purple Green
Brown Pink [73] Blue Black

我希望输出(因此,在A.txt中)为:

[32]Apple Green Banana Orange
[73]Kiwi Blue Grape Lemon

因此,为了概括,如何根据指定位置的字符串匹配两个文本文件中的行,并将其中一个匹配行中的另一个字符串添加到指定位置的另一行?

1 个答案:

答案 0 :(得分:1)

以下是使用正则表达式执行此操作的方法。

首先我们打开每个文件。

然后我们比较[]括号内的每一行的值。

找到匹配后,我们可以打印每一行。

import re

file_a = open("./A.txt", "r")

file_b = open("./B.txt", "r")

for a_line in file_a:
    a = re.findall(r"([0-9]+)", a_line)

    for b_line in file_b:
        b = re.findall(r"([0-9]+)", b_line)
        if a == b:
            print(a_line)
            print(b_line)

    file_b.seek(0)

file_a.close()
file_b.close()

您提供日期的结果如下所示:

[32]Apple Banana Orange

Blue Red [32] Green Black

[73]Kiwi Grape Lemon
Brown Pink [73] Blue Black