【问题标题】:Converting a log file into a csv file using Python使用 Python 将日志文件转换为 csv 文件
【发布时间】:2016-06-20 14:54:08
【问题描述】:

我在工作中遇到以下问题 - 我需要记录一个日志文件,其中的项目安排如下:

A1
B1
C1
A2
B2
C2
.
.
.
An
Bn
Cn

我需要一个完整的 csv 文件,如下所示:

A1,B1,C1
A2,B2,C2
A3,B3,C3
...
An,Bn,Cn

如何使用 python 脚本来做到这一点?

编辑:实际上,格式是按以下方式写出来的-

Voltage: A1
Current: B1
Power: C1

如何将其转换为 -

Voltage, Current, Power
A1,B1,C1

【问题讨论】:

  • 你试过什么?发布您编写的任何代码。假设您的公司正在向您付款,因此您应该展示您为解决问题所做的努力。
  • 多说一下日志文件的格式。如果格式与您写的完全一样,您只需从文件的最后一行找到n 的值,然后创建 csv 文件:无需查看日志文件的其余部分。或者有什么你没有包括的?

标签: python csv


【解决方案1】:
import csv

with open('myfile.log') as file:
    lines = file.read().splitlines()
    lines = [lines[x:x+3] for x in range(0, len(lines), 3)]

    with open('yourcsv.csv', 'w+') as csvfile:
        w = csv.writer(csvfile)
        w.writerows(lines)

请注意,点仍然存在,它们将被视为值(因此它们也将用逗号分隔)

【讨论】:

    【解决方案2】:

    使用 numpy 的简单解决方案:

    import numpy as np
    
    data = np.genfromtxt("d.csv", dtype=str)
    data = np.reshape(data, (3,-1))
    np.savetxt('data.csv', data, delimiter=',', fmt="%s")
    

    结果:

    A1,B1,C1
    A2,B2,C2
    An,Bn,Cn
    

    如果您没有使用 numpy,请发布一些您尝试过的代码。

    【讨论】:

      猜你喜欢
      • 2021-03-23
      • 2017-03-02
      • 2022-01-25
      • 2021-07-24
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 2013-04-04
      相关资源
      最近更新 更多