Python 将文件记录到数据帧中
我有一个日志文件:Python 将文件记录到数据帧中,python,pandas,file,logging,Python,Pandas,File,Logging,我有一个日志文件: 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 IN
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
我会将文件作为一列读取并提取:
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
因为您有固定宽度的格式化行。你可以用
df=pd.read_fwf('d1.csv',colspecs=[(0,8)、(9,21)、(22,25)、(26,35)、(36,-1)],header=None)
df
0 1 2 3 4
0 20-04-21 15:04:54.355-7.0 105.0 INF:Y电机:加载0.8的Y运动剖面。。。
1 20-04-21 15:04:54.355-7.0 105.0 INF:Y电机:0.830米的Y运动剖面。。。
220-04-21 15:04:54.355-7.0 105.0 INF:吸管电机:将吸管位置向下设置
320-04-21 15:04:54.355-7.0 105.0 INF:FPGA:Xmit SIPDOWN\n[SipperMotor]
4200-04-2115:05:07.665-7.0136.0 INF:FPGA:Recv SIPDOWN
5 20-04-21 15:05:07.665-7.0 105.0 INF:FPGA:“SIPDOWN”命令花了0毫秒发送。。。
colspecs
:元组列表(int,int)或“推断”。可选
元组列表,以半开间隔(即,[from,to[
))给出每行固定宽度字段的范围。字符串值'infer'
可用于指示解析器尝试从未通过skiprows跳过的前100行数据中检测列规范(default='expert')
。
-