1. 基本文件输入输出命令
open 文件名 方式
set f [open $filename "r"]
f 是文件的通道ID,可以使用open命令打开文件并获取通道ID
r 只读方式打开,文件必须已经存在
r+ 读写方式打开,文件必须已经存在
w 只写方式打开文件,如果文件存在则清空文件内容,否则创建一新的空文件
w+ 读写方式打开文件,如文件存在则清空文件内容,否则创建新的空文件
a 只写方式打开文件,文件必须存在,并把指针指向文件尾
a + 只读方式打开文件,并把指针指向文件尾。如文件不存在,创建新的空文件
gets 文件内容 返回文件行
gets $f line
set fileId [open "test.txt" r]
while {[gets $fileId line] != -1} {
puts $line
}
read fileId 读取文件内容
puts stdout $line 把string写到fileId中
tell fileId 返回fileId标识的文件的当前访问位置
eof fileId 如果到达fileId文件的末尾返回1,否则返回0
close $fileId 关闭标识为fileId的文件
2.写入文件
proc write_to_file {output_file} {
set out [open $output_file "w"]
set a s1
puts $out "list of ports: $s1"
close $out
}
3.读取文件
proc read_of_file {input_file} {
set r [open $input_file "r"]
set content [read $r]
close $r
puts $content
}
lsearch list pattern 返回list中第一个匹配pattern元素的索引
set a {how are you}
lsearch $a y*
4.获取文件特定内容
set file [open "place_compute_timing.rpt" r]
while {![eof $file]} {
gets $file line
if {[regexp "Timing Summary" $line]} {
set name_lists [split $line "|"]
gets $file line
set slack_lists [split $line "|"]
set WNS_number [lsearch $name_list "WNS"]
set TNS_number [lsearch $name_list "TNS"]
set WNS [lindex $slack_lists $WNS_number]
set TNS [lindex $slack_lists $TNS_number]
}
}
puts "func: $WNS"
puts "func: $TNS"
close $file
本文含有隐藏内容,请 开通VIP 后查看