Tcl - 文件I / O.

Tcl在内置命令open,read,puts,gets和close的帮助下支持文件处理.

文件表示一个字节序列,如果它是无关紧要的是一个文本文件或二进制文件.

打开文件

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

open fileName accessMode

此处,文件名是字符串文字,您将使用它来命名文件, accessMode 可以使用以下值之一 :

Sr.No.模式&说明
1

r

打开现有文本文件以进行读取,文件必须存在.这是没有指定accessMode时使用的默认模式.

2

w

打开要写入的文本文件,如果它不存在,则创建一个新文件否则现有文件被截断.

3

a

打开文本文件以便以附加模式写入,文件必须存在.在这里,您的程序将开始在现有文件内容中附加内容.

4

r+

打开文本文件以进行读写.文件必须已存在.

5

w+

打开文本文件以进行读写.如果它存在,它首先将文件截断为零长度,否则创建文件(如果它不存在).

6

a+

打开一个文本文件,用于读写.如果文件不存在,它将创建该文件.读数将从头开始,但只能附加写入.

关闭文件

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

close fileName

程序完成使用该文件后,必须关闭程序打开的任何文件.在大多数情况下,不需要明确关闭文件;当File对象自动终止时,它们会自动关闭.

编写文件

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