#csv #tcl
Вопрос:
У меня есть вложенный список, скажем {{1 2} {3 4} {5 6}}. Я хочу преобразовать это в файл .csv, содержащий такие данные, как,
1 |3 |5
2 |4 |6
Однако я вообще не могу использовать какие-либо пакеты, такие как «csv». Как мне это сделать? Я очень новичок в TCL, поэтому не знаю, как управляются CSV без пакетов.
Комментарии:
1.
foreach
и.join
Ответ №1:
Если бы вы пытались произвести:
1 |2
3 |4
5 |6
тогда это было бы совсем просто. Нет необходимости в пакете csv.
foreach list $nested_list {
puts [join $list " |"]
}
Однако ваша цель состоит в том, чтобы первая строка csv использовала первый индекс вложенного списка, вторая строка csv использовала второй индекс и т. Д. Я бы рекомендовал выполнять итерацию по индексу и использовать lmap
в цикле.
set nested_list {{1 2} {3 4} {5 6}}
foreach i {0 1} {
set items_at_i [lmap l $nested_list {lindex $l $i}]
set csv_line [join $items_at_i " |"]
puts $csv_line
}
Я не уверен, как использование csv-пакета tcllib упростит это. Есть ли какая — то операция поворота матрицы, о которой вы думаете, чтобы перейти от строк к столбцам?
Комментарии:
1. спасибо, что это сработало!
2. просто интересно, какова мотивация этого вопроса? Почему вы подумали, что с пакетом csv будет проще?
3. На странице вашей учетной записи указано, что вы работаете в Intel. Я тоже так думаю. Пришлите мне электронное письмо от компании, чтобы поздороваться.
4. вы знаете, что добавить tcl pkgs в наши системы непросто, и я всего лишь стажер, впервые занимающийся TCL.
5. кстати, как тебя зовут в разведке? Не смог найти вас в поиске по электронной почте.