我让al给我写了一个代码,能跑但是没有结果 就是我有个文件夹,里面全是txt格式的文件,我希望把每个文件里各行中行首数字为57399的行提取出来,写到一个新文件里头 代码运行完了,新文件里头啥也没有
时间: 2024-10-11 11:12:57 浏览: 29
EFEC:只是一个用于从我在Gmail上发送的邮件中获取文件的代码(哦,注释和自述文件是西班牙语)
看起来你的代码可能是这样的,用于从每个.txt文件中提取特定行(行首为57399),然后将结果写入新文件。不过由于你提到新文件里什么都没有,可能存在几个问题。
1. **文件内容**:首先确认文件是否确实存在且有行首为57399的数据。如果不是,那么程序当然不会有任何输出。
2. **正则表达式匹配**:确保代码正确地识别了行首的数字。例如,如果你的代码只是简单地查找"57399",而不是匹配实际的数字行,比如包含空格、逗号等的行,那么可能需要修改正则表达式。
3. **文件操作**:检查文件写入部分,看是否正确设置了路径和文件名,以及`to_csv`函数的`mode`参数是否设置为追加(`a`)而非覆盖(`w`),避免覆盖原有文件。
4. **异常处理**:有可能是在处理过程中发生了错误,但没有被记录下来。添加适当的异常处理可以帮助定位问题。
下面是简化版示例代码,你可以参考看看是否有遗漏的地方:
```python
import os
import re
import pandas as pd
folder_path = 'your_folder_path'
output_file = 'output_file.txt'
for filename in os.listdir(folder_path):
if filename.endswith('.txt'):
with open(os.path.join(folder_path, filename), 'r') as f:
lines = f.readlines()
filtered_lines = [line for line in lines if re.match(r'^57399', line)]
if filtered_lines:
data = '\n'.join(filtered_lines)
with open(output_file, 'a') as output:
output.write(data + '\n')
阅读全文