gpt4 book ai didi

python - 比较两个文件的相似性,而不是常见问题

转载 作者:行者123 更新时间:2023-12-04 08:35:12 24 4
gpt4 key购买 nike

我的问题:我有两个 .txt 文件,我想使用其中一个文件作为过滤第二个文件的指南。将相似之处附加到新的 .txt 文件 3.
例如:
文件 1:名称列表
文件 2:姓名和电子邮件地址列表。
如果在文件 2 的任何行中都找不到文件 1 中的任何名称,请删除该行并将匹配的行附加到新的 .txt 文件中。
显然,我已经用我能用的任何方式在谷歌上搜索了这个问题,甚至找到了一个可以做到这一点的网络应用程序,但是它无法处理我需要的大小文件。我试图为此编写一个python脚本(我对编程还很陌生),从我读过的内容来看,我确信使用我不知道的NumPy之类的东西会更容易。我只需要朝着正确的方向轻推,这稍微超出了我的技能范围。我能够使用正则表达式和其他类似的基本入门内容编写用于网络抓取的脚本,但这是我真正需要快速解决的问题,并且似乎无法在其他地方找到真正适合该问题的解决方案。类似问题的所有其他解决方案都是指单个字符串,或显示差异而不是相似之处。
这是我的尝试,这显然是不正确的:

    file1 = input("Input file 1: ")
file2 = input("Input file 2: ")

with open("file1.txt", r) as f1:
lines1 = f1.read.splitlines()
names = file1.split(";")[0]
emails = file1.split(";")[1]
with open("file2.txt", r) as f2:
lines2 = f2.read.splitlines()

newfile = open("newfile", w)

for names in lines2:
strip(line)
newfile.write(line)
我真的很感激一些建议或朝正确方向的插入。谢谢 !
文件示例:
file 1:
1.ustrading@uste-miami.com
2.georgeanddonna@reagan.com
3.sbright@carltonrochell.com
4.mary@roadrunnerss.com

File 2:
1.Jack Young;ustrading@uste-miami.com
2.George Russel;georgeanddonna@reagan.com
3.Susan Shields;sbright@carltonrochell.com
4.Mary Cartwright;mary@roadrunnerss.com
5.Heather Carter;heatherc@bridgerkitchens.com
6.Denise Black;dd@genereux.us
7.Tanner Tennebaum;ctannenbaum@chefswithaltitude.com
8.John Grable;jgrable@johngrable.com
9.Connor Hawk;cmhworld@rof.net
因此,我希望使用文件 1 作为有趣数据的源来解析文件 2 中的前 4 个 Name;Email 行。

最佳答案

我的假设:

  • file1.txt 每行包含一个电子邮件地址,仅此而已。
  • file2.txt 每行包含一个姓名和一个电子邮件,用分号分隔
  • 您正在寻找两个数据集之间的匹配项
  • # first, read in the smaller set of the entries we are interested in finding
    with open("file1.txt") as file1:
    # strip them of any leading or trailing whitespace (e.g. newlines) and empty lines
    needles = [line.strip() for line in file1.readlines()]
    needles = set(filter(bool, needles))

    # now open the haystack file2 and the output file3
    with open("file2.txt") as file2, open("file3.txt", "w") as file3:
    # we iterate line by line to not fill up the memory too much
    for line in file2:
    # strip any whitespace from the line
    line = line.strip()
    # ...and skip over empty lines
    if not line: continue
    # we assume each line contains exactly one semicolon that separates name from email
    name, email = line.split(";")
    # does the email match any of the ones we are looking for?
    if email in needles:
    # then format the line correctly and write it to the output file
    file3.write("{};{}\n".format(name, email))
    输入文件的内容:
    文件1.txt
    ustrading@uste-miami.com  
    georgeanddonna@reagan.com
    sbright@carltonrochell.com
    mary@roadrunnerss.com
    文件2.txt
    Jack Young;ustrading@uste-miami.com  
    George Russel;georgeanddonna@reagan.com
    Susan Shields;sbright@carltonrochell.com
    Mary Cartwright;mary@roadrunnerss.com
    Heather Carter;heatherc@bridgerkitchens.com
    Denise Black;dd@genereux.us
    Tanner Tennebaum;ctannenbaum@chefswithaltitude.com
    John Grable;jgrable@johngrable.com
    Connor Hawk;cmhworld@rof.net
    运行脚本后file3.txt的内容:
    Jack Young;ustrading@uste-miami.com
    George Russel;georgeanddonna@reagan.com
    Susan Shields;sbright@carltonrochell.com
    Mary Cartwright;mary@roadrunnerss.com

    关于python - 比较两个文件的相似性,而不是常见问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64832689/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com