用twist[Python]从另一个文件中输入文本来搜索文件

2024-06-16 14:10:01 发布

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

我想用一个查询文件.txt作为源文件,用于搜索每一行并将其与数据文件.txt. 但是数据文件.txt有不同的结构。你知道吗

你知道吗查询文件.txt应该是这样的:

Gina Cooper

Asthon Smith

Kim Lee

而数据文件.txt看起来像这样:

Gina Cooper

112 Blahblah St., NY

Leigh Walsh

09D blablah, Blah

Asthon Smith

another address here

Kim Lee

another address here

我要把名字和后面的线都记下来。下面是在两个文件中获取匹配名称的代码,这是dstromberg(https://stackoverflow.com/a/19934477)的修改代码:

with open('querfile.txt', 'r') as input_file:
    input_addresses = set(names.rstrip() for names in input_file)

with open('datafile.txt', 'r') as data_file:
    data_addresses = set(names.rstrip() for names in data_file)

with open('names_address.txt', 'w') as output:
    names_address=("\n".join(input_addresses.intersection(data_addresses)))
    output.write(names_address)

总之,我想在我的outfile(name)中看到什么_地址.txt)是名字加上他们名字对应的地址,基本上是下一行。我一个月前刚开始玩Python,我相信我是卡住了。谢谢谢谢你的帮助。你知道吗


Tags: 文件txtinputdatanamesaddress数据文件addresses
2条回答

重写以下内容:

with open('datafile.txt', 'r') as data_file:
    data_addresses = set(names.rstrip() for names in data_file)

对此:

with open('datafile.txt', 'r') as data_file:   
    data = data_file.readlines()
    data_addresses = list(filter(None, [line for line in data if not line[0].isdigit()]))

循环浏览选项,然后就可以抓取下一个索引:

for i in range(len(data_addresses):
  for entry in input_addresses:
    if entry==data_addresses[i]:
      output.write(data_address[i] + data_address[i+1])

这可能没有太大的时间复杂度,但您的数据集似乎

相关问题 更多 >