在 Tcl 中打开包含变量的文件
Open file in Tcl with variables inside
我想打开名为 filelist.txt
的文件,其中仅包含字符串 ${PATHFILE}/test.txt
,读取该行并打开文件 test.txt
。文件 test.txt
存在于文件夹 ~/testfile
.
中
考虑这个示例代码:
#!/usr/bin/env tclsh
set PATHFILE "~/testfile"
set fp [open "filelist.txt" r]
set lines [split [read $fp] "\n"]
close $fp
foreach line $lines {
set fp1 [open $line r]
close $fp1
}
问题是 "open" 命令似乎找不到 PATHFILE
变量,我得到这个错误:
couldn't open "${PATHFILE}/test.txt": no such file or directory
如果我尝试用 set fp1 [open "${PATHFILE}/test.txt" r]
打开文件,我没有任何错误。
是的,您可以使用 TCL subst command 来评估 PATHFILE 变量。请注意,波浪号 ~ 可能仍有问题 - 使用完整路径名可能更好。
#!/usr/bin/env tclsh
set PATHFILE "~/testfile"
set fp [open "filelist.txt" r]
set lines [split [read $fp] "\n"]
close $fp
foreach line $lines {
set fp1 [open [subst $line] r]
close $fp1
}
我想打开名为 filelist.txt
的文件,其中仅包含字符串 ${PATHFILE}/test.txt
,读取该行并打开文件 test.txt
。文件 test.txt
存在于文件夹 ~/testfile
.
中
考虑这个示例代码:
#!/usr/bin/env tclsh
set PATHFILE "~/testfile"
set fp [open "filelist.txt" r]
set lines [split [read $fp] "\n"]
close $fp
foreach line $lines {
set fp1 [open $line r]
close $fp1
}
问题是 "open" 命令似乎找不到 PATHFILE
变量,我得到这个错误:
couldn't open "${PATHFILE}/test.txt": no such file or directory
如果我尝试用 set fp1 [open "${PATHFILE}/test.txt" r]
打开文件,我没有任何错误。
是的,您可以使用 TCL subst command 来评估 PATHFILE 变量。请注意,波浪号 ~ 可能仍有问题 - 使用完整路径名可能更好。
#!/usr/bin/env tclsh
set PATHFILE "~/testfile"
set fp [open "filelist.txt" r]
set lines [split [read $fp] "\n"]
close $fp
foreach line $lines {
set fp1 [open [subst $line] r]
close $fp1
}