我使用while循环编写了一段代码,但是逐行读取文件需要花费太多时间.有人能帮帮我吗?我的代码:
set a [open myfile r]
while {[gets $a line]>=0} {
"do somethig by using the line variable"
}
Run Code Online (Sandbox Code Playgroud)
代码看起来很好.它非常快(如果您使用的是足够新版本的Tcl;从历史上看,有一些TLC的小版本存在缓冲管理问题),并且您是一次读取一行的方式.
如果你可以一次读取更大的数量,它会快一点,但是你需要有足够的内存来保存文件.把它放在上下文中,几百万行的文件通常没问题; 现代计算机可以很好地处理这类事情:
set a [open myfile]
set lines [split [read $a] "\n"]
close $a; # Saves a few bytes :-)
foreach line $lines {
# do something with each line...
}
Run Code Online (Sandbox Code Playgroud)