如何使用tcl创建csv文件

时间:2016-11-07 10:33:49

标签: tcl

我有两个变量,让我们说$ a,列表名称& $ b随着年龄的增长,当我尝试重定向到csv时,它会创建csv但是$ a& $ b落入相同的行而不是不同的,我如何将它们分成两个不同的行?

    puts $outfile "$b_1 \t$c"
    set outfile [open "result_table_sort.csv" w+]

2 个答案:

答案 0 :(得分:0)

创建CSV文件的推荐方法是使用Tcllib中的csv package。它可以为您处理各种棘手的边缘情况,因此您无需这样做。

package require csv

set outfile [open "thing.csv" w]
foreach aRow $a bRow $b {
    puts $outfile [csv::join [list $aRow $bRow]]
}
close $outfile

您可以通过将\t作为分隔符添加到csv::join来切换为生成制表符分隔的输出:

    puts $outfile [csv::join [list $aRow $bRow] "\t"]

还要考虑使用csv::joinlistcsv::joinmatrix命令。它们都允许您一次构建整个表,第一个作为列表列表(行列表,每行包含列列表),第二个作为矩阵(在Tcllib中struct::matrix package中定义的结构)

答案 1 :(得分:0)

通过在两个变量之间放置逗号来解决我的问题找到解决方案....

    puts $outfile "$b_1,\t$c"
    set outfile [open "result_table_sort.csv" w+]