用python 遍历文件目录下的txt文件,搜索文件内容,如果含有关键字"123 @",则提取此行内容和该文件的路径,写入到名为456的新文件中
时间: 2024-04-10 09:33:08 浏览: 14
可以使用Python的os和re模块来实现遍历文件目录和搜索文件内容。
首先,我们需要导入所需的模块:
```python
import os
import re
```
然后,我们可以定义一个函数来遍历文件目录并搜索文件内容:
```python
def search_files(directory, keyword):
results = []
for root, _, files in os.walk(directory):
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()
for line in lines:
if re.search(keyword, line):
result = f"{line.strip()} - {file_path}"
results.append(result)
return results
```
在上述代码中,`directory` 参数表示文件目录的路径,`keyword` 参数表示要搜索的关键字。该函数会遍历给定的文件目录,并使用正则表达式搜索每个文本文件中的行内容,如果行内容包含关键字,则将该行内容和文件路径拼接成一个字符串,并将其添加到 `results` 列表中。
最后,我们可以调用该函数并将结果写入到名为 "456.txt" 的新文件中:
```python
results = search_files("path/to/directory", "123 @")
with open("456.txt", "w") as f:
f.write("\n".join(results))
```
请确保将 `path/to/directory` 替换为实际的文件目录路径。这样,满足条件的行内容和文件路径将被写入到名为 "456.txt" 的新文件中。
注意:在搜索文件内容时,我们使用了正则表达式来匹配关键字。如果关键字包含特殊字符,可能需要进行转义处理。