在 TCL 代码中 - 如何读取 Windows 文本文件?

In TCL code - how to read a Windows text file?

如何在 TCL 中读取文本文件 (Windows)?
我写了一些 PowerShell 代码,它生成一个包含多个值的文本文件。生成的值用作进一步处理的输入数据。

我需要使用 TCL 读取内容所需的逻辑。
我怎样才能做到这一点?

要读取包含文本的文件,假设您知道该文件在当前目录中名为 INPUT_DATA.TXT

set f [open "INPUT_DATA.TXT"];   # Or [open "INPUT_DATA.TXT" "r"]
set lineList [split [read $f] "\n"]
close $f

这将 列表 文本放入变量 lineList 中。为此,它 open 文件名,returns 我存储在变量 f 中的“文件句柄”。然后(从最里面向外读取下一行代码)我 read 从文件句柄和 split 那个大字符串 \n (换行符)得到文件的全部内容文件中所有行的所有内容的列表。最后,我close那个文件句柄;当您不需要它们时,将它们保持打开通常不是一个好主意,因为 OS 可用的数量有限(尽管该有限数量非常大)。

接下来,您需要做进一步的工作来获取代码以理解文件的内容。 las,这更多地取决于数据格式,因此实际上并没有通用规则。


如果您使用的是 binary 文件,您可以改为:

set f [open "INPUT_DATA.BIN" "rb"]
set data [read $f]
close $f

但是二进制数据格式 比文本数据格式 多得多,所以“下一步是什么?”更难概括。幸运的是,Tcl 中的二进制数据并不太难;除了 open 中额外的 b 之外,二进制数据只是 Tcl 的另一个字符串,而 Tcl 的 good at strings!