如何在不使用Pandas和Numpy的Python中将.log文件转为.csv?
纯Python实现无第三方库的.log转带表头.csv
直接用Python内置文件操作就能完成需求,无需依赖Pandas或Numpy:
基础实现(保留空格分隔)
如果需要和你示例中一致的空格分隔格式,用这段代码:
log_path = "your_input.log" csv_path = "your_output.csv" # 定义表头 header = "A B C D\n" # 读取日志文件内容 with open(log_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 写入CSV文件:先写表头,再追加原内容 with open(csv_path, 'w', encoding='utf-8') as f: f.write(header) f.writelines(lines)
标准CSV格式(逗号分隔)
如果需要生成通用的逗号分隔CSV(更适配Excel、Google Sheets等工具),可以修改为:
log_path = "your_input.log" csv_path = "your_output.csv" header = "A,B,C,D\n" with open(log_path, 'r', encoding='utf-8') as f: # 将每行的空格替换为逗号 csv_lines = [line.strip().replace(' ', ',') + '\n' for line in f] with open(csv_path, 'w', encoding='utf-8') as f: f.write(header) f.writelines(csv_lines)
额外优化(处理多空格分隔)
如果日志文件中存在多个连续空格作为分隔符,可借助正则模块统一替换:
import re log_path = "your_input.log" csv_path = "your_output.csv" header = "A,B,C,D\n" with open(log_path, 'r', encoding='utf-8') as f: csv_lines = [re.sub(r'\s+', ',', line.strip()) + '\n' for line in f] with open(csv_path, 'w', encoding='utf-8') as f: f.write(header) f.writelines(csv_lines)
内容的提问来源于stack exchange,提问作者Soujit Mukherjee
相关产品推荐
相关产品推荐

