在 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!
如何在 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!