Tcl - 文件 I/O



Tcl 通过内置命令 open、read、puts、gets 和 close 支持文件处理。

文件表示字节序列,无论它是文本文件还是二进制文件。

打开文件

Tcl 使用 open 命令在 Tcl 中打开文件。打开文件的语法如下:

open fileName accessMode

这里,filename 是字符串字面量,您将使用它来命名您的文件,而 accessMode 可以具有以下值之一:

序号 模式 & 描述
1

r

以读取目的打开一个现有的文本文件,并且文件必须存在。这是在未指定 accessMode 时使用的默认模式。

2

w

打开一个文本文件以进行写入,如果它不存在,则创建一个新文件,否则截断现有文件。

3

a

以追加模式打开一个文本文件,并且文件必须存在。在这里,您的程序将开始将内容追加到现有文件内容中。

4

r+

打开一个文本文件以进行读写。文件必须已存在。

5

w+

打开一个文本文件以进行读写。如果文件存在,则首先将其长度截断为零,否则如果文件不存在,则创建该文件。

6

a+

打开一个文本文件以进行读写。如果它不存在,则创建该文件。读取将从开头开始,但写入只能追加。

关闭文件

要关闭文件,请使用 close 命令。close 的语法如下:

close fileName 

程序打开的任何文件都必须在程序完成使用该文件时关闭。在大多数情况下,无需显式关闭文件;当文件对象自动终止时,它们会自动关闭。

写入文件

Puts 命令用于写入打开的文件。

puts $filename "text to write"

下面显示了一个写入文件的简单示例。

#!/usr/bin/tclsh

set fp [open "input.txt" w+]
puts $fp "test"
close $fp

当以上代码编译并执行时,它会在其启动所在的目录(在程序的工作目录中)创建一个名为input.txt的新文件。

读取文件

以下是读取文件的简单命令:

set file_data [read $fp]

下面显示了一个完整的读写示例:

#!/usr/bin/tclsh

set fp [open "input.txt" w+]
puts $fp "test"
close $fp
set fp [open "input.txt" r]
set file_data [read $fp]
puts $file_data
close $fp

当以上代码编译并执行时,它读取上一节中创建的文件并产生以下结果:

test

以下是另一个逐行读取文件直到文件结尾的示例:

#!/usr/bin/tclsh

set fp [open "input.txt" w+]
puts $fp "test\ntest"
close $fp
set fp [open "input.txt" r]

while { [gets $fp data] >= 0 } {
   puts $data
}
close $fp

当以上代码编译并执行时,它读取上一节中创建的文件并产生以下结果:

test
test
广告