Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将文件记录到数据帧中_Python_Pandas_File_Logging - Fatal编程技术网

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
  • 没有标题
  • 我想对日期的第一列进行拆分##-##-##
  • 第二列应该是##:##:####
  • 第三列应该是-##
  • 第四列应为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
    

    因为您有固定宽度的格式化行。你可以用

    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')
    。 -