【发布时间】:2018-06-18 15:33:49
【问题描述】:
我有一个包含二进制数据的 .dat 文件的文件夹,我想解析并写入与 .dat 文件同名的 .csv 文件。我可以获取单个 .dat 文件并将其转换为相应的 .csv 到我需要的文件夹。
import numpy as np
import pandas as pd
raw_file= '/home/targetfolder/channel1.dat'
with open(raw_file, "rb") as f:
raw_data = np.fromstring(f.read(), dtype=np.float32)
comb_np_array = np.vstack(raw_data)
big_frame = pd.DataFrame(comb_np_array)
big_frame.to_csv("/home/destinationfolder/channel1.csv")
f.close()
'filename.csv 中的输出 0,-47.418867 1,-47.443828 2,-47.4445311 3,-47.4738281 4,-47.4193871 5,-47.4222221 6,-47.4193878
这是我遵循的链接:Python: How to save *.dat-files as *.csv-files to new folder
import csv
from os import listdir
from os.path import isfile, join, splitext
dat_folder = "/home/nri/"
csv_folder = "/home/nri/tmp/"
onlyfilenames = [f for f in listdir(dat_folder) if
isfile(join(dat_folder,f))]
for fullfilename in onlyfilenames:
file_name, file_extension = splitext(fullfilename)
if file_extension == ".dat":
inputfile=dat_folder + fullfilename
with open(inputfile, "rb") as f:
inputfile = np.fromstring(f.read(), dtype=np.float32)
comb_np_array = np.vstack(raw_data)
n = pd.DataFrame(comb_np_array)
with open(join(csv_folder, file_name + ".csv"), "w",
newline='') as f:
writer = csv.writer(f,lineterminator='\n')
for row in range(len(n)):
writer.writerows(n)
但是上面给出了一个错误:“sequence expected”。请让我知道如何获得所需的结果。
【问题讨论】:
-
发布完整的回溯,异常来自哪里(行号?)?您有示例 .dat 文件吗?
-
[link ]dropbox.com/s/du00e29th219cp1/channel1.dat?dl=0 示例 dat 文件,错误在代码的最后一行:writer.writerrows(n)