将.dat转换为csv时,我的代码更改输出值

时间:2019-05-15 11:46:19

标签: python pandas

我有一个.dat文件,正在尝试将其转换为csv文件。 我发现一段代码“以某种方式”解决了我的问题。 关键是:这样的代码给了我一个混乱的输出文件。换句话说:它改变了我的价值观!!!!

有人可以帮助我吗? 我是这个的初学者。

非常感谢。

with open('f.dat') as input_file:
    lines = input_file.readlines()
    newLines = []
    for line in lines:
        newLines.append(newLine)

with open('f_out.csv','w') as output_file:
    file_writer = csv.writer(output_file)
    file_writer.writerows(newLines)

我的输入文件如下:

"-18.7723311308 3166157043.25795    0   1006743187.3562
-18.8214122765  188717303.231381    0   57141624.5127759
-18.7022205742  399933910.540253    0   87142384.8698447
-18.5903166748  23045528.3797531    0   5841919.83133624
-18.3051499783  76457482.0309581    0   25326122.2381197"
(with more lines)

输出文件如下:

-21.5607314306,1200000000.0,0,500000000.0,MBH
-21.5607314306,1200000000.0,0,500000000.0,MBH
-21.5607314306,1200000000.0,0,500000000.0,MBH

我只想要一个输出文件,其中的列用逗号分隔,例如:

"-18.7723311308, 3166157043.25795, 0, 1006743187.3562
-18.8214122765, 188717303.231381, 0 ,57141624.5127759"

3 个答案:

答案 0 :(得分:0)

.dat文件使用文件io操作可读性不强 您可以使用asammdf模块读取.dat文件。 点安装asammdf

答案 1 :(得分:0)

有一个名为pandas的模块,可以轻松地将列表转换为csv文件。尝试使用此代码即可。

import pandas as pd
with open('f.dat') as input_file:
    lines = input_file.readlines()
    newLines = []
    for line in lines:
        newLines.append(line)
pd.DataFrame(newLines).to_csv('f_out.csv')

答案 2 :(得分:0)

  

.dat文件使用文件io操作可读性不强,可以使用asammdf模块读取.dat文件。使用pip install asammdf

asammdf 上下文中的

.dat文件是通常用于汽车领域的Measurement Data File v2或v3。我认为OP没有这种文件