我有两个文本文件,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
因此,为了概括,如何根据指定位置的字符串匹配两个文本文件中的行,并将其中一个匹配行中的另一个字符串添加到指定位置的另一行?
答案 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