我有一个文件(文件A.txt)和一个具有文件B.txt的目录。文件B和文件A在不同的目录中。
我想读取文件B目录中的所有文本文件,并查看文件A以在文件B及其下面的文本中找到匹配的字符串。
这是文件的一小段 文件A.txt:
**453454
文件B.txt :(目录中的一个文件,要搜索该目录中的所有.txt文件)
**84565
cat dog sd
fish turtle fg
预期输出:
**84565
cat dog sd
fish turtle fg
非常感谢您!
答案 0 :(得分:0)
问题在于found
从未设置为False
。您拥有的if子句仅在读取空行时才会触发。相反,您可以做的是检查每个“数字行”(带有两个星号和一个数字的行)并相应地设置found
。即如果“数字行”与“文件A.txt”中的一个匹配,则将found
设置为True
,如果未将其设置为False
。最后一个for循环将如下所示:
for line in file:
if line.startswith("**"):
if line.strip() in foxnum:
found = True
else:
found = False
if found:
results.write(line)