python - 将文件记录到数据框中
问题描述
我有一个日志文件:
20-04-21 15:04:54.355 -07 000000105 INF: Y Motor: Loading Y Motion Profile for 0.830 mm
20-04-21 15:04:54.355 -07 000000105 INF: Y Motor: The Y Motion Profile for 0.830 mm is already loaded, skipping
20-04-21 15:04:54.355 -07 000000105 INF: SipperMotor: Set Sipper Position Down
20-04-21 15:04:54.355 -07 000000105 INF: FPGA: Xmit SIPDOWN\n [SipperMotor]
20-04-21 15:05:07.665 -07 000000136 INF: FPGA: Recv SIPDOWN
20-04-21 15:05:07.665 -07 000000105 INF: FPGA: 'SIPDOWN' command took 0 ms to send, 13300 ms to get response, and 13305 ms overall
- 没有标题
- 我想将第一列拆分为日期##-##-##
- 第二列应该是##:##:##.###
- 第三列应该是 -##
- 第四列应为 XXX:
- 第五列应将其他所有内容作为文本
解决方案
我会将文件作为单列读取并提取:
df = pd.read_csv('file.txt', header=None, sep='\t')
df = df[0].str.extract('(\S+) (\S+) (\S+) (\S+) (.*)$')
输出:
0 1 2 3 4
-- -------- ------------ --- --------- ----------------------------------------------------------------------------------------------
0 20-04-21 15:04:54.355 -07 000000105 INF: Y Motor: Loading Y Motion Profile for 0.830 mm
1 20-04-21 15:04:54.355 -07 000000105 INF: Y Motor: The Y Motion Profile for 0.830 mm is already loaded, skipping
2 20-04-21 15:04:54.355 -07 000000105 INF: SipperMotor: Set Sipper Position Down
3 20-04-21 15:04:54.355 -07 000000105 INF: FPGA: Xmit SIPDOWN\n [SipperMotor]
4 20-04-21 15:05:07.665 -07 000000136 INF: FPGA: Recv SIPDOWN
5 20-04-21 15:05:07.665 -07 000000105 INF: FPGA: 'SIPDOWN' command took 0 ms to send, 13300 ms to get response, and 13305 ms overall
推荐阅读
- laravel-5 - 如何让网页根据时间自动导航
- php - 引发 eventclick 时如何从 db 中检索其他详细信息
- javascript - setInterval 不同于 chrome 和 firefox
- javascript - Cant SUM on table td 此代码 javascript 如何修复?
- swift - 如何使用打字稿将快照值转换为字典值?
- javascript - 如何使用 Javascript 中的单击按钮来更改笔划的颜色?
- python-3.x - DLL 加载失败:找不到指定的模块。在 matplotlib 程序中
- flutter - 在某些情况下我可以跳过 BlocBuilder 渲染吗?
- java - 如何通过在android中使用位置来获取模态类数据
- javascript - 在使用 multer-s3-transform 上传到 s3 之前使用 imagemin 转换照片