簡體   English   中英

讀取csv文件工具命令行代碼后忽略空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM