我是Python的真正初学者,并尝试制作一个将Pickled nd数组保存到csv文件中的脚本。 下面是我写的代码,但在终端中运行时没有给出任何东西。 您认为这个问题是什么?我完全无能为力......
非常感谢。提前
input => s01.dat,s02.dat,...,s32.dat
每个.dat文件都有{'标签' :((此处为2d数组)),'数据' :((此处为3d数组))}
import cPickle
import numpy as np
def csv_writer(file_name):
x = cPickle.load(open(file_name, 'rb'))
labels = x['labels']
data = x['data']
write_path_1 = file_name + '_labels.csv'
write_path_2 = file_name + '_data.csv'
np.savetxt(write_path_1, labels, fmt = '%.6f', delimiter=",")
with file(wirte_path_2, 'w') as datafile:
datafile.write('#Array shape: {0}\n'.format(data.shape))
for data_slice in data:
datafile.write('# New slice in 3dimension\n')
np.savetxt(datafile, data_slice, fmt = '%.8f', delimiter = ",")
for i in range(1, 10):
path = 's0' + str(i) + '.dat'
csv_writer(path)
for i in range(10, 32):
path = 's' + str(i) + '.dat'
csv_writer(path)
答案 0 :(得分:0)
您必须以这种方式修改脚本。尝试:
import cPickle
import numpy as np
def csv_writer(file_name):
x = cPickle.load(open(file_name, 'rb'))
labels = x['labels']
data = x['data']
write_path_1 = file_name + '_labels.csv'
write_path_2 = file_name + '_data.csv'
np.savetxt(write_path_1, labels, fmt = '%.6f', delimiter=",")
with file(wirte_path_2, 'w') as datafile:
datafile.write('#Array shape: {0}\n'.format(data.shape))
for data_slice in data:
datafile.write('# New slice in 3dimension\n')
np.savetxt(datafile, data_slice, fmt = '%.8f', delimiter = ",")
if __name__ == '__main__':
for i in range(1, 10):
path = 's0' + str(i) + '.dat'
csv_writer(path)
for i in range(10, 32):
path = 's' + str(i) + '.dat'
csv_writer(path)
答案 1 :(得分:0)
另一种方法是使用csv模块:https://docs.python.org/2/library/csv.html