无法通过tcl代码访问文件

无法通过tcl代码访问文件,tcl,Tcl,我在桌面上有一个文件test.txt,我想通过代码访问它,并阅读我在下面提到的代码中尝试过的代码,但遇到同样的错误时无法打开文件。没有这样的文件或目录存在。请看一下我的代码: set filename {C:\Users\E505135\Desktop\test.txt} set fp [open $filename r] set file_data [read $fp] close $fp set data [split $file_data ","] foreach line $data {

我在桌面上有一个文件test.txt,我想通过代码访问它,并阅读我在下面提到的代码中尝试过的代码,但遇到同样的错误时无法打开文件。没有这样的文件或目录存在。请看一下我的代码:

set filename {C:\Users\E505135\Desktop\test.txt}
set fp [open $filename r]
set file_data [read $fp]
close $fp
set data [split $file_data ","]
foreach line $data {
puts "$line";
}  

仅供参考,我在代码中尝试了正斜杠和反斜杠,但仍然得到相同的错误。

您的代码中没有明显的错误;看起来绝对不错。唯一的可能是文件并不是你想象的那样。不幸的是,这是(而且我不在Windows的部署中实际发生这种情况,所以我无法测试我的理论)


解决这个问题的最简单方法可能是使用Tk的
Tk_getOpenFile
来提供要处理的文件名,而不是对其进行硬编码。

如果您在windows上通过cygwin使用Tcsh,您的路径将是/cygdrive/c/Users/E505135/Desktop/test.txt(区分大小写)


我在Windows7的草莓下和Fedora18中(修改了路径)按原样尝试了您的代码(刚刚复制和粘贴)。两者都运行良好。

我在windows系统上,我的用户名同样由一个字母和6位数字组成,但我运行以下代码没有问题:
set filename{C:\Users\c829454\Desktop\test.txt};设置fp[open$filename r];关闭$fp
我使用前斜杠或后斜杠时没有问题。你确定你走对了路吗?脚本是否与文件位于同一目录中?您可以尝试使用命令
setcdir[pwd];设置文件名“$cdir/text.txt”
pwd
以字符串形式返回脚本的当前路径)。在命令提示符下,尝试键入C:\Users\E505135\Desktop\test.txt,您会看到什么?文件真的在那里吗?