python读一个文件夹下的所有文件,匹配内容中有“abc”的文件,并输出文件名
时间: 2024-04-21 14:22:52 浏览: 87
你可以使用 `os` 模块和 `re` 模块来实现这个需求。下面是一个示例代码:
```python
import os
import re
def find_files_with_content(folder_path, keyword):
file_list = []
# 遍历文件夹下的所有文件和子文件夹
for root, dirs, files in os.walk(folder_path):
for file_name in files:
file_path = os.path.join(root, file_name)
# 打开文件并搜索关键词
with open(file_path, 'r', encoding='utf-8') as file:
content = file.read()
if re.search(keyword, content):
file_list.append(file_name)
return file_list
# 指定文件夹路径和关键词
folder_path = '/path/to/folder'
keyword = 'abc'
# 调用函数并输出匹配的文件名
result = find_files_with_content(folder_path, keyword)
for file_name in result:
print(file_name)
```
请将 `/path/to/folder` 替换为你要搜索的文件夹路径,将 `'abc'` 替换为你要匹配的关键词。这段代码将遍历指定文件夹下的所有文件和子文件夹,打开每个文件并搜索关键词内容。如果文件中存在匹配的内容,将文件名添加到 `file_list` 列表中,并最终返回匹配的文件名列表。最后,通过循环打印匹配的文件名。
阅读全文