首页 > 解决方案 > 在 python 中读取 .log 文件

问题描述

嗨,我有一个 .log 文件的以下输出

Date/Time: 2019-09-11 13:11:48
Global Freq. Table [Ticks @ 82.3045ps]
  -1215 : 56
  -1214 : 192
  -1213 : 105
  -1212 : 375
  -1211 : 230

我想知道如何编写一个 python 脚本来首先读取列读取由 : 分隔的值并将它们存储到单独的数组中。如果您能帮我解决这个问题,我将不胜感激。

标签: pythonpython-3.x

解决方案


假设您有一个包含以下内容的文件(file.log):

Date/Time: 2019-09-11 13:11:48 Global Freq. Table [Ticks @ 82.3045ps] -1215 : 56 -1214 : 192 -1213 : 105 -1212 : 375 -1211 : 230
Date/Time: 2019-09-11 13:11:48 Global Freq. Table [Ticks @ 82.3045ps] -1215 : 56 -1214 : 192 -1213 : 105 -1212 : 375 -1211 : 230
Date/Time: 2019-09-11 13:11:48 Global Freq. Table [Ticks @ 82.3045ps] -1215 : 56 -1214 : 192 -1213 : 105 -1212 : 375 -1211 : 230

首先打开文件:

file = open('file.log', 'r')

从文件中读取所有行,然后关闭它:

lines = file.read().splitlines()
file.close()

由于各列由:字符明确分隔,因此单独获取每一列很简单:

for line in lines:
    if not line:
        continue

    columns = [col.strip() for col in line.split(':') if col]

    # do something

现在,列变量包含您需要的所有列。


推荐阅读