Python 3.x 在两个文件中搜索匹配数据,然后选择记录并写入第三个文件

Python 3.x 在两个文件中搜索匹配数据,然后选择记录并写入第三个文件,python-3.x,Python 3.x,使用Python3加载两个文件,然后使用文件A数据在文件B中查找记录,然后将该记录写入文件C 第一步,我尝试打开文件A和B,搜索匹配项,然后将匹配项写入文件C,但它不会生成任何输出 fileA = open('C:\\tmp\\somefile.csv', 'r') fileB = open('C:\\tmp\\somefile.txt', 'r') fileC = open('C:\\tmp\\somefile.txt', 'w') for line1 in fileA: for l

使用Python3加载两个文件,然后使用文件A数据在文件B中查找记录,然后将该记录写入文件C

第一步,我尝试打开文件A和B,搜索匹配项,然后将匹配项写入文件C,但它不会生成任何输出

fileA = open('C:\\tmp\\somefile.csv', 'r')
fileB = open('C:\\tmp\\somefile.txt', 'r')
fileC = open('C:\\tmp\\somefile.txt', 'w')

for line1 in fileA:
    for line1 in fileB:
        if line1 == line1:
            fileC.write("%s\n" %(line1))
一旦我开始生成从fileA&fileB到fileC的匹配字符串,我就可以从fileB中选择记录并将其写入fileC

您需要使用.read()方法,如果要匹配行,可以拆分它们:

fileA = open('C:\\tmp\\somefile.csv', 'r')
fileB = open('C:\\tmp\\somefile.txt', 'r')
fileC = open('C:\\tmp\\somefile.txt', 'w')

#if you looking for char level match delete .split('\n') 's
for line1 in fileA.read().split('\n'):
    for line12 in fileB.read().split('\n'):
        if line1 and line1 == line2: #your if statement wrong correct it
            fileC.write("%s\n" %(line1))

编辑:将line1添加到if语句以检查空行。

您需要通过readlines()读取文件的所有行,然后进行如下比较

fileA = open('C:\\tmp\\somefile.csv', 'r')
fileB = open('C:\\tmp\\somefile.txt', 'r')
fileC = open('C:\\tmp\\somefile.txt', 'w')

#Read all lines in the files
linesA = fileA.readlines()
linesB = fileB.readlines()

#Iterate through the lines
for line1 in linesA:
    for line2 in linesB:
        if line1 and line2: #Check for empty lines
            if line1 == line2: #If lines match, write them to fileC
                fileC.write("%s\n" %(line1))

您是否尝试过
fileA.read()==fileB.read()
当我调整代码以匹配上述内容时,它只返回一列3k空格1。)文件A包含一列3k电子邮件地址。2.)我需要记录文件A中的每个电子邮件条目,并逐行搜索文件B中的电子邮件地址。3.)一旦我找到电子邮件地址,我需要将文件B中的整行写入文件C。如果您有很多空白行,可以修改if语句,如:“if line1和line1==line2:”