我在这里有两个问题。
1)我正在尝试打印我提供的文件名作为输入。但它提供了一些随机值。
set fileIn [open "[ pwd ]/Test - 2.csv" r]
puts "File Name : [file tail $fileIn]"
输出
File Name : file1d2d0a00
我知道我可以使用[file tail "[ pwd ]/Test - 2.csv"]
。但我可以从 fileIn 吗?
2)我正在尝试获取运行脚本所需的总时间。我正在使用以下方法。它以毫秒为单位给我。我怎样才能在几分钟内得到它?
set start_time [clock clicks -milliseconds]
{
# my operations
}
set time_taken [expr [clock clicks -milliseconds] - $start_time]
puts $time_taken
除了使用数学运算进行转换之外,是否有任何内部方法(或其他格式)可以在几分钟内获得时间?
答案 0 :(得分:1)
问题1:
由于您使用open
命令来读取文件,因此它返回的值只是文件指针。即文件操作的参考。为了获得您使用的文件名,如下所示,
set fileName "[pwd ]/Test - 2.csv"
puts "File Name : [file tail $fileName]";
# The variable 'fileIn' is the file pointer.
# You should use the same for further file operations.
set fileIn [open $fileName r]
问题2:
要将毫秒转换为分钟,您只需将结果除以60000。
set start_time [clock clicks -milliseconds]
# Your actions here
after 1000; # I just used 'after' command to sleep for 1s
set time_taken [expr [clock clicks -milliseconds] - $start_time]
puts "time taken in milliseconds : $time_taken"
puts "time taken in seconds : [expr {[format "%#.10g" $time_taken]/1000}]"
puts "time taken in mins : [expr {[format "%#.10g" $time_taken]/60000}]"
输出
time taken in milliseconds : 1011
time taken in seconds : 1.011
time taken in mins : 0.01685
或者,您可以使用[clock seconds]
以秒为单位获取时间并将其除以60以在几分钟内得到它。