两个文本文件中的Python模糊匹配

2024-10-04 07:32:21 发布

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

我有一个简单的代码,匹配两个文本文件中的网络用户名。我已经尝试通过将两个输入都改为大写来规范化输入,但是我需要更进一步,让我的代码生成部分用户名匹配。史密斯,约翰在一张名单上,也许,史密斯,约翰(财务)在另一张名单上。我曾经看过fuzzyfuzzy,但我只学了几个星期的Python,我很难理解如何在脚本中使用它。在

with OpenUpperCase(filename, "r")as file1:
    for line in islice(file1,20,None):
        with OpenUpperCase ("c:\\Files\Usernames.txt", "r") as file2:
            files= filename.upper().split("\\")
            int1=files[3].strip()
            filedate=int1[0:-4]
            list2 = file2.readlines()
            for i in file1:
                for j in list2:
                    if i == j:

这就是我到目前为止所拥有的,可能不是很好的编码,但它似乎可以工作。有什么想法可以让我的用户名模糊匹配吗? 非常感谢您能提供的任何帮助。在

编辑。

通常,我的列表会是这样的。显然有几百个用户。在

文件1

^{pr2}$

文件2

Salt, Bill
Wilds, Tony (SALES)
Smith,Will (OLD USER)
JONES,STEVEN (ACCOUNTS)

Tags: 文件代码inforaswithfilesfilename
1条回答
网友
1楼 · 发布于 2024-10-04 07:32:21

为了简单起见,使用stringIO对象:

file1 = io.StringIO("""Salt, William (old user)
Wilds, Tony
Smith, William (Old User)
JONES,Steven (Old User)""")

file2 = io.StringIO("""Salt, Bill
Wilds, Tony (SALES)
Smith,Will (OLD USER)
JONES,STEVEN (ACCOUNTS)""")

将所有姓名读入一组:

^{pr2}$

对于每个文件:

data1 = read_file(file1)
data2 = read_file(file2)

一个简单的交叉口可以:

data1.intersection(data2)

结果:

set([('wilds', 'tony'), ('jones', 'steven')])

相关问题 更多 >