首页 > 解决方案 > 在TCL中,当文件处于连续写操作时,是否可以删除文件的前几行或前n行

问题描述

以下是有关如何将数据写入文件的代码。

set fid [open "file.txt" w]
fconfigure $fid -buffering line

我想知道是否有任何方法可以在文件处于写入模式时在不关闭 fileID 即 fid 的情况下删除文件的前 n 行。

标签: tclconfigureio-buffering

解决方案


由于文件的处理方式,这是不可能的。它也与 Tcl/Tk 语言无关,任何编程语言都不可能。

为了解决这个问题,使用了一些变通方法。

例如,1)读取内存中的文件;2) 从头开始​​删除不需要的数据 2) 将数据写回文件。

或者:1)打开原始文件进行读取 2)打开临时文件进行写入 3)从原始文件中跳过不需要的数据 4)从原始文件中读取需要的数据并将其写入临时文件 5)关闭原始文件和临时文件文件 6) 删除原文件并重命名临时文件。


推荐阅读