我正在尝试打开一个文件进行读取,从Tk文件打开对话框询问用户输入,但是遇到错误“cannot file channel named
”
这是我的代码。
您可以通过以下代码告诉我这个问题吗?
proc load_input_entries {} {
global sa sd sb sc
set types {
{{Text Files} {.txt} }
{{CSV Files} {.csv} }
{{All Files} * }
}
set fp [tk_getOpenFile -parent . \
-title "Select File" \
-filetypes $types -multiple true \
-initialdir "/simulation/safe/ip/work" ]
if {[file exists $fp]} {
set stuff [read $fp]
set lines [split $stuff "\n"]
set sa [lindex $lines 0]
set sb [lindex $lines 1]
set sc [lindex $lines 2]
set sd [lindex $lines 3]
}
}
答案 0 :(得分:4)
tk_getOpenFile
为您提供 name 文件。您仍然必须打开文件才能阅读它。尝试
set filename [tk_getOpenFile ...
if {[file exists $filename]} {
set fp [open $filename]
...
如果遇到这样的问题,暂时插入puts
命令以查看变量的值是很有用的。如果你这样做了,你会发现它有文件名而不是文件句柄。