将数据保存为 *.dat 文件?

Posted

技术标签:

【中文标题】将数据保存为 *.dat 文件?【英文标题】:Save data as a *.dat file? 【发布时间】:2017-10-31 14:42:28 【问题描述】:

我正在用 Python 编写一个程序,它应该导入 *.dat 文件,从某些列中减去一个特定值,然后将文件以 *.dat 格式保存在不同的目录中。

我目前的策略是将数据文件加载到numpy 数组中,执行计算然后保存。我被储蓄部分困住了。我不知道如何在 python 中以*.dat 格式保存文件。谁能帮我?或者有没有不需要将*.dat 文件作为numpy 数组导入的替代方法?非常感谢!

【问题讨论】:

你知道如何在 Python 中保存 any 个文件吗?如果没有 - 您是否尝试过查阅 Python 文档?如果没有,我建议您这样做或查看this question。 没有特定的“dat”格式。 你能具体说明你在说什么数据格式吗?是二进制文件吗?或具有某种特定格式的文本文件?确实没有标准的 dat 格式...如果您愿意,可以创建自己的格式 【参考方案1】:

您可以使用struct 将整数打包成字节格式并将它们写入dat 文件。

import struct

data = [# your data]

打开:

with open('your_data.dat', 'rb') as your_data_file:
    values = struct.unpack('i'*len(data), your_data_file.read())

保存数据:

with open('your_data.dat', 'wb') as your_dat_file:  
    your_dat_file.write(struct.pack('i'*len(data), *data))

Reference.

【讨论】:

【参考方案2】:

您可以使用 pandas 读取和导出 .dat 文件:

import pandas as pd
input_df = pd.read_table('input_file_name.dat')  
...  
output_df = pd.DataFrame('column_name': column_values)  
output_df.to_csv('output_file_name.dat')

【讨论】:

【参考方案3】:

假设你的文件看起来像

file = open(filename, "r")

您需要做的就是打开另一个带有“w”作为第二个参数的文件

file = open(new_file-path,"w")
file.write(data)
file.close()

如果你的数据不是字符串,要么将其设为字符串,要么使用

file = open(filename, "rb")
file = open(filename, "wb")

读写时,因为这些读写原始字节

【讨论】:

如果数据是numpy产生的,会报错:“TypeError: write() argument must be str, not numpy.ndarray” 刚刚将其更改为包含【参考方案4】:

.dat 文件可以使用 pandas 库读取:

df = pd.read_csv('xxxx.dat', sep='\s+', header=None, skiprows=1)

skiprows=1 将忽略第一行,即标题。

\s+ 是.dat 文件的分隔符(默认)。

【讨论】:

【参考方案5】:

如果我错了,请纠正我,但打开、写入和随后关闭文件应该算作“保存”它。您可以通过运行导入脚本并比较上次修改日期来自行测试。

【讨论】:

以上是关于将数据保存为 *.dat 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Matlab 变量转换为带有标题的 .dat(文本)文件

road文件怎么转dat文件

MATLAB - .dat 文件中的变量保存命令

delphi 中如何将图片数据保存到dat文件里的,然后读取出来,并在Image控件中显示。

使用 Matlab 将矩阵保存到 .dat 文件 [关闭]

分布式文件系统比较:IPFS和Dat