从一个文件夹内的文件夹中提取每一个txt文件,并根据关键词搜索文件,并将每一个关键词所对应的行提取并生成一个新的TXT文件到指定路径
时间: 2024-04-14 16:28:26 浏览: 81
2.指定一个路径,将其下面(含子文件夹中)的以".txt"结尾的文件移动到指定的另一个路径下;
要从一个文件夹内的文件夹中提取每个txt文件,并根据关键词搜索文件,并将每个关键词所对应的行提取并生成一个新的TXT文件到指定路径,您可以使用递归方法来遍历文件夹及其子文件夹。以下是示例代码:
```python
import os
import re
def extract_lines_with_keywords(folder_path, keywords, output_path):
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".txt"):
file_path = os.path.join(root, file)
with open(file_path, 'r') as f:
lines = f.readlines()
matching_lines = []
for line in lines:
for keyword in keywords:
if re.search(keyword, line):
matching_lines.append(line)
break
if matching_lines:
output_file = os.path.join(output_path, f"{file}_output.txt")
with open(output_file, 'w') as f:
f.writelines(matching_lines)
# 示例用法
folder_path = "path/to/folder" # 替换为实际的文件夹路径
keywords = ["keyword1", "keyword2"] # 替换为实际的关键词列表
output_path = "path/to/output" # 替换为实际的输出路径
extract_lines_with_keywords(folder_path, keywords, output_path)
```
请确保替换示例代码中的以下部分:
- `folder_path`:实际的文件夹路径,要包含要搜索的txt文件。
- `keywords`:实际的关键词列表,您想要搜索的关键词。
- `output_path`:实际的输出路径,新生成的TXT文件将保存在该路径下。
代码会遍历指定的文件夹及其子文件夹中的所有txt文件,并搜索包含关键词的行。如果找到匹配的行,则将其写入新的TXT文件,并将其保存到指定的输出路径中。
阅读全文