2016-02-26 71 views
0

我是一個真正的Python初學者,並試圖製作一個腳本,將pickled nd數組保存爲csv文件。 下面是我寫的代碼,但在終端中運行時沒有提供任何內容。 你認爲是什麼問題?我完全無能爲力...Python:nd數組到csv

非常感謝。預先

輸入=> 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

只是:python xxxx.py – Natalie

+0

你在期待什麼?它創建'csv'文件嗎?我不期望任何屏幕顯示,因爲你不打印任何東西。 – hpaulj

回答

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) 
+0

對不起,我的答案是關於'未編輯'的問題。我會更新它 –

+0

嗯...仍然沒有工作,但不能感謝你更多的幫助! – Natalie

+0

哦好吧,大聲笑謝謝 – Natalie