2012-04-18 266 views
0

我有一個csv文件Book1.csv。我想讀取數據以便在腳本中使用它。我無法讀取行列格式。假設我有一個名爲「7-slot」的列,並且有數據「1 2 3 4 5」等等。不知道如何閱讀。從谷歌和stackoverflow搜索,但沒有得到。如何從csv文件讀取數據

package require csv 
package require struct::matrix 

# Load the file into a matrix 
struct::matrix data 
set f [open Book1.csv] 
csv::read2matrix $f data , auto 
close $f 

這段代碼我已經從stackoverflow onlt。我是TCL新手,所以學習這些東西

+0

什麼是缺失,是實際的問題。 「我不能讀......」不是問題。代碼看起來是正確的,所以要麼提供(方式)更多的細節,要麼嘗試使用簡單的CSV文件(比如3x3)來手動創建代碼,並在工作時嘗試理解爲什麼它不適合您的真實案例。 – kostix 2012-04-18 09:59:16

回答

2

啊,我認爲缺少的是在讀入矩陣之前添加列。

此片段:

package require csv 
package require struct::matrix 

struct::matrix m 
m add columns 3 
set f [open foo.csv] 
csv::read2matrix $f m , 
close $f 
puts [m serialize] 

產生用於含foo.csv

1,2,3 
"aaa","bbb","ccc" 

此打印輸出:

2 3 {{1 2 3} {aaa bbb ccc}} 

哪我解析爲「2行3列,然後一個矩陣列表中的每一行代表行列值。

+1

read2matrix命令的自動選項應該根據需要擴展矩陣。我認爲其他事情正在發生,但我看不到什麼。 – Jackson 2012-04-18 12:25:31