首页 > 解决方案 > 如何在目录中的所有文本文件中搜索字符串并将找到的结果放在 Python 中的文本文件中

问题描述

我正在尝试编写一些 Python 代码来查看目录中的所有 .txt 文件,并且对于包含特定字符串的任何文件,会将文件名附加到 .txt 文件中。

我目前有以下代码在我选择单个文件时有效:

 with open('FW_ (Big) Data Engineer.msg datatext.txt') as f:
    if "Data Engineer" in f.read():
        f = open("Data Engineer.txt","a+")
        f.write("Found it, but I would rather have the file name here")
        f.close() 

假设目录路径是“C:\Users\me\textfiles”,我似乎找不到循环遍历该目录中所有文件的方法,查找字符串并将文件名写入例如“ Data Engineer.txt”如果它应该属于那里。

我已经尝试将我的路径定义为变量,但我还没有找到一个可行的解决方案(尝试过 os.scandir 和 Path),我还没有找到一个可行的解决方案来遍历该目录中的所有文件。我知道 f.write 需要一个字符串,但我认为将变量放在 str() 之间可以解决这个问题。

标签: pythonloopsdirectorytext-files

解决方案


试试这个:

import os

# Remember to change these
directory = "test";
text = "Test";
def search(dirname):
    array = [];
    for i in os.listdir(dirname):
        i = os.path.join(dirname, i);
        if(os.path.isdir(i)):
            x = search(i);
            if(not x):
                continue;
            array = array + x;
        else:
            if(text in open(i, "r").read()):
                do_something();
search(directory);

这也将在子目录中搜索。


推荐阅读