将文件与另一个文件进行比较

时间:2016-01-31 21:36:22

标签: python file if-statement compare line

import sys
import os
import glob
directorylist = ["A", "B", "C", "D"]

for directory in directorylist:
    for file in glob.glob(os.path.join(directory, "tobecompared(*).txt")):
        with open(file) as f:
                a=0
                fdata = f.readlines()
                for line in fdata:
                    with open ("/Users/Student/Desktop/folder/pool.txt", "r") as pool:
                        if line in pool:
                            a=a+1
                print a

我想将文本文件中的行(tobecompared1.txt,tobecompared2.txt)与另一个文本文件(pool.txt)中的行进行比较。 该文件夹包含文件夹A,B,C和D. pool.txt位于文件夹中,而tobecompared(*)。txt文件位于目录A,B,C中。此代码旨在打印no。原始池中存在的tobecompared文本文件中的行数。

此代码重复打印0,因此我猜测循环存在问题,将a的值增加1。 真正的目标是:

说pool.txt是

A
B
C
D

tobecompared(01)A中的.txt是

A
A
F
H
C
B

比较(02)A中的.txt是

A
B
C
tobecompared(01)B中的.txt是

G
D
C

输出结果为:

4
3
2

1 个答案:

答案 0 :(得分:1)

您正在文件对象中查找字符串。这种情况永远不会成真。替换:

if line in pool: 
    a=a+1

使用:

for line2 in pool:
    if line.rstrip() == line2.rstrip():
        a += 1