Python多对替换为txt文件

Python多对替换为txt文件,python,text,substitution,Python,Text,Substitution,我有2个.txt文件,第一个是这样组织的: 1:NAME1 2:NAME2 3:NAME3 ... 1 1 1 2 2 2 3 NAME1 NAME1 NAME1 NAME2 NAME2 NAME2 NAME3 第二个是这样的: 1:NAME1 2:NAME2 3:NAME3 ... 1 1 1 2 2 2 3 NAME1 NAME1 NAME1 NAME2 NAME2 NAME2 NAME3 我想做的是根据.txt 1中的成对替换.txt 2中的每一行,如下所示: 1:NAME1

我有2个.txt文件,第一个是这样组织的:

1:NAME1
2:NAME2
3:NAME3
...
1
1
1
2
2
2
3
NAME1
NAME1
NAME1
NAME2
NAME2
NAME2
NAME3
第二个是这样的:

1:NAME1
2:NAME2
3:NAME3
...
1
1
1
2
2
2
3
NAME1
NAME1
NAME1
NAME2
NAME2
NAME2
NAME3
我想做的是根据.txt 1中的成对替换.txt 2中的每一行,如下所示:

1:NAME1
2:NAME2
3:NAME3
...
1
1
1
2
2
2
3
NAME1
NAME1
NAME1
NAME2
NAME2
NAME2
NAME3

有办法做到这一点吗?我想组织第一个txt,删除1:2:3:并将其作为数组读取,然后在范围(1,txt 1中的行数)中为I创建一个循环,然后在txt 2中查找包含“I”的行,并用数组的I元素替换。但是我当然不知道该怎么做。

这应该可以做到。它读取第一个文件,并将
k,v
对存储在一个dict中。该dict用于为第二个文件中找到的每个
k
输出
v

但是。。。。如果你想阻止这些否决票,最好发布一段你自己的代码片段来展示你所做的尝试。。。现在,你的问题是一个红色毯子,为所有没有代码的人投反对票。该死,他们甚至否决了答案,因为问题中没有代码

lookup = {}
with open("first.txt") as fifile:
    for line in fifile:
        lookup[line.split[":"][0]] = line.split[":"][1] 

with open("second.txt") as sifile:
    with open("output.txt", "w") as ofile:
        for line in sifile:
            ofile.write("{}\n".format(lookup[line])

正如罗德里戈评论的那样。有很多方法可以实现它,但将名称存储在字典中可能是一种方法

# Read the names
with open('names.txt') as f_names:
    names = dict(line.strip().split(':') for line in f_names)

# Read the numbers
with open('numbers.txt') as f_numbers:
    numbers = list(line.strip() for line in f_numbers)

# Replace numbers with names
with open('numbers.txt', 'w') as f_output:
    for n in numbers:
        f_output.write(names[n] + '\n')

只需将文件1记录存储在字典中,文件2的键为dict,您应该用value替换,即dict[key]没有尝试过您的记录,但jrmyp的代码工作得很好。不知道人们对这个向下投票有什么问题,我有一个想法,但不知道如何编码,这就是为什么我在这里问!顺便谢谢你