我正在制作一个系统,需要搜索两个.txt文件以获取匹配信息(注册牌),如果系统找到匹配,则需要将两个文件中的行输出到新文件。文件:一个包含超速车辆的数据(regplate:速度数据),另一个包含车辆登记和车主详细信息(regplate:车主信息)。我目前创建了一个系统,它将使用输入和line.startswith()命令查找所有者信息,但我需要系统检查超速文件中的每个板块并检查所有者信息文件中是否有相同的板,如果是,则应将两个数据输出到新文件。有没有办法用.startswith()做到这一点?如果不是你建议的其他方式。在这两个文件中,每一行都以不同的登记牌开头。
我目前的代码:
import re
with open("Speeding.txt", "r") as f:
list1 = []
for line in f:
list1.append(line)
listnew = str(list1)
listnew.replace("\n", "")
new=open('SpeedersDetails.txt', 'a')
platecheck=input('Input plate: ')
with open('Plates.txt', 'r') as platefilereopen:
for line in platefilereopen:
if line.startswith(platecheck):
new.write(line)
new.write('\n')
new.close()
f.close()
我的档案: Ownersdetails, Speeding
答案 0 :(得分:0)
您可以浏览一个文件并创建一个字典defaultdict(list)
,并将注册牌作为键,并将“速度数据”附加到列表值。然后浏览另一个文件,并在字典中的每个注册牌中添加“所有者信息”。现在,您可以运行字典项并使用长度为2的列表输出每个条目。
for reg_plate, info_list in reg_plate_dict.items():
if len(info_list) == 2:
speed_data, owner_info = value