Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中的另一个文件中查找一个文本文件的条目_Python_String_Compare_Readfile - Fatal编程技术网

在python中的另一个文件中查找一个文本文件的条目

在python中的另一个文件中查找一个文本文件的条目,python,string,compare,readfile,Python,String,Compare,Readfile,我有两个文件。文件A在每一行中都有一些条目,我需要找到文件B中是否有条目。以下是我的脚本(使用两个函数): 此脚本在第二个文件中找到第一个条目,然后找不到下一个条目。这里可能出了什么问题 文件A如下所示: 122323 812549 232335 921020 文件B如下所示: 696798 727832 750478 784201 812549 838916 870906 890988 921020 697506 727874 751037 784955 813

我有两个文件。文件A在每一行中都有一些条目,我需要找到文件B中是否有条目。以下是我的脚本(使用两个函数):

此脚本在第二个文件中找到第一个条目,然后找不到下一个条目。这里可能出了什么问题

文件A如下所示:

122323 
812549
232335
921020
文件B如下所示:

696798  727832  750478  784201  812549  838916  870906  890988  921020  
697506  727874  751037  784955  813096  838978  872494  891368  921789  
696798  727832  750478  784201  812549  838916  870906  890988  921020  
697506  727874  751037  784955  813096  838978  872494  891368  921789  

您不一定需要定义函数来实现这一点

with open('a.txt') as a, open('b.txt') as b:
    result = set(a.readlines()) & set(b.readlines())
如果它们都有相同的行,它将以集合的形式返回它们

如果你真的想要一个函数,你可以这样写

def compare(file1: str, file2: str) -> set:
    with open(file1) as f1, open(file2) as f2:
        return set(f1.readlines()) & set(f2.readlines())
去掉新行的条目 Python在读取行时包含换行符-您的第一个条目被读取为
1223232\n
。去掉这条新线,它就会起作用

def readA():
    with open('A.txt') as bondNumberFile:
        for line in bondNumberFile:
            readB(line.rstrip())

下一个可能不在那里,它在那里。我已经添加了自己进行测试。这个任务可以由grep完成如下:
grep-f fileA fileB
。最好的代码是您不必编写的代码。如果您在Windows上,您可以尝试
Get Content fileB | Select String-Pattern(Get Content fileA)
名称“check”是打字错误。您的解决方案仍然无法解决我的问题。请再核对一下这个问题。我还添加了文件数据。文件A中的数字都与文件B不匹配。此外,如果您试图匹配列出的所有数字,则需要将
readlines()
更改为
read().split()
数字不匹配,因为这只是一个测试数据。但让我来编辑一下。
def readA():
    with open('A.txt') as bondNumberFile:
        for line in bondNumberFile:
            readB(line.rstrip())