Tcl 在后台打开时打开 .csv

Tcl open a .csv while its open in background

我正在尝试使用 Tcl 打开一个 .csv 文件进行写入,同时该文件在后台打开以供读取。

$ tclsh test.tcl couldn't open "mydata.csv": permission denied
    while executing "open "mydata.csv" a+"
    invoked from within "set f [open "mydata.csv" a+]"
    (file "test.tcl" line 1)

test.tcl

set f [open "mydata.csv" a+]

如果 mydata.csv 已打开,则代码失败 - 否则不会失败。
如何在实时观看正在写入的内容的同时打开 .csv 进行写入?

Tcl和其他语言没有区别。您可以打开任何文件进行读取,只要您有读取权限,但您只能监控文件内容只要它写入磁盘。使用读取命令检查其内容。

例如:

set fin [open "mydata.csv" a+]
set fout [open "mydata.csv" r]
read $fout   # shows the file contents
puts -nonewline $fin "something"
read $fout   # nothing to read
flush $fin
read $fout   # reads "something"

因此您可以在后台启动循环以定期检查 $fout。

问题是双击 excel 以写入模式打开。为了能够检查 csv,请在 只读 模式下打开