我有一个代码,我想用它来打开日志文件,提取内容并将其保存到变量中,这样我以后就可以从变量中提取数据。我怎么做?到目前为止,代码仅将日志文件的最后数据保存到变量中。我认为while循环逐行抓取数据并且变量逐个存储它并在前进时覆盖先前的数据,如何更改代码以便在代码进行时存储所有数据?
set fp [open "filename.log" r]
while { [gets $fp data] >= 0 } {
set written $data
}
close $fp
puts $written
请帮助
答案 0 :(得分:4)
您也可以使用read
而不是while
和gets
:
set fp [open "filename.log" r]
set written [read $fp]
close $fp
puts $written
答案 1 :(得分:1)
您可以使用append
命令进行此操作:
set written ""
set fp [open "filename.log" r]
while { [gets $fp data] >= 0 } {
# append last data read
append written $data
# add some line feed for readability (may not be necessary)
append written "\n"
}
close $fp
puts $written
答案 2 :(得分:1)
在得到@purplepsycho和@Jerry的好答案之后,您可以使用fileutil::cat
函数,即使open
和close
不需要文件描述符和语法,
package require fileutil
set var [fileutil::cat "filename.log"]
puts $var