[英]Ignore white space after reading csv file tool command line code
我是 tcl 編程的新手,我正在閱讀一個 csv 文件,但是這些行可以包含一個空格。 但是 tcl 在空間上分裂。 如何忽略該默認行為。 我的 csv 是
1,fname,lname 1
2,fname,lname 2
拆分有效,當我嘗試 output [lindex ${line} 2]
我期待lname 1
。 然而,由於 tcl 在空間上分裂,我該如何克服這個問題。
foreach row $data {
set line [split ${row} ","]
puts [lindex ${line} 0]
}
你幾乎已經有了答案。 在做簡單的CSV讀取時,先用換行符split
得到記錄,然后用逗號split
得到一條記錄中的字段。
foreach row [split $data "\n"] {
set line [split $row ","]
puts [lindex $line 0]
}
在復雜的情況下(一旦您開始擁有帶有嵌入式逗號和換行符等的字段),您可以使用 Tcllib 中的csv package ,因為它會為您處理細微差別。 特別是csv::read2matrix
很有幫助。
如果可以,請使用逗號以外的字符來分隔字段。 選項卡是常見的推薦選擇; 它生成制表符分隔的文件,並且得到廣泛支持,並且通常具有無故障的互操作性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.