我正在用Python编写一个程序,它应该导入*.dat
个文件,从某些列中减去一个特定值,然后将文件以*.dat
格式保存在不同的目录中。
我目前的策略是将数据文件加载到numpy
数组中,执行计算然后保存。我被困在保存部分。我不知道如何以*.dat
格式在python中保存文件。谁能帮我?或者是否有另一种方法而无需将*.dat
文件作为numpy
数组导入?非常感谢!
答案 0 :(得分:2)
假设您的文件看起来像
file = open(filename, "r")
您需要做的就是打开另一个文件,其中“w”作为第二个参数
file = open(new_file-path,"w")
file.write(data)
file.close()
如果您的数据不是字符串,请将其设为字符串,或使用
file = open(filename, "rb")
file = open(filename, "wb")
读写时,因为这些读写原始字节
答案 1 :(得分: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))
答案 2 :(得分:1)
您可以使用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 :(得分:0)
可以使用pandas库读取.dat文件:
df = pd.read_csv('xxxx.dat', sep='\s+', header=None, skiprows=1)
skiprows=1
将忽略第一行,即标题。
\s+
是.dat文件的分隔(默认)。
答案 4 :(得分:0)
如果我错了,请纠正我,但是打开,写入并随后关闭文件应该算作"保存"它。您可以通过运行导入脚本并比较上次修改日期来自行测试。