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
答案 0 :(得分:1)
您正在文件对象中查找字符串。这种情况永远不会成真。替换:
if line in pool:
a=a+1
使用:
for line2 in pool:
if line.rstrip() == line2.rstrip():
a += 1