split $line ""
означает разбиение $line
на список отдельных символов.Так что если у вас есть строка «abc», то set mylist [split abc ""]
даст {abc}, а lindex $mylist 1
равно 'b'.Просто напишите: set path [lindex $line 0]
, потому что lindex
автоматически интерпретирует $line
как список.
Использование split $line
может вызвать ошибки, если имя пути содержит пробелы.
Вы также можете рассмотретьlassign $line path line_num
для установки path
и line_num
в одной команде.