python提取文件夹下面多个.log文件指定内容并收集结果到TXT上面
时间: 2023-06-17 19:05:55 浏览: 123
可以使用Python的内置模块os和re来实现这个任务。
首先,需要导入os和re模块:
```python
import os
import re
```
然后,可以使用os模块的listdir函数列出指定文件夹下的所有文件:
```python
folder_path = "/path/to/folder"
files = os.listdir(folder_path)
```
接着,可以使用re模块来匹配需要提取的内容。假设需要提取的内容是以"error"开头的行,可以使用以下正则表达式:
```python
pattern = "^error.*"
```
接下来,可以遍历所有的文件,逐一读取文件内容并提取需要的内容:
```python
result = []
for file_name in files:
if file_name.endswith(".log"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r") as f:
for line in f:
if re.match(pattern, line):
result.append(line)
```
最后,可以将提取到的结果写入到一个TXT文件中:
```python
output_file = "/path/to/output.txt"
with open(output_file, "w") as f:
f.writelines(result)
```
完整代码如下:
```python
import os
import re
folder_path = "/path/to/folder"
output_file = "/path/to/output.txt"
pattern = "^error.*"
files = os.listdir(folder_path)
result = []
for file_name in files:
if file_name.endswith(".log"):
file_path = os.path.join(folder_path, file_name)
with open(file_path, "r") as f:
for line in f:
if re.match(pattern, line):
result.append(line)
with open(output_file, "w") as f:
f.writelines(result)
```
注意,如果需要提取其他的内容,可以修改正则表达式的pattern变量。
阅读全文