使用不同的脚本从同一文本文件中写入和读取

时间:2010-11-28 14:42:09

标签: language-agnostic file-io

这是一个与我所处的实际情况无关的问题,但它总是让我烦恼。

如果我有一个脚本在一个文本文件中读取和追加行,而另一个脚本从同一个文件中读取,会出现什么问题?

我知道当一个脚本打开一个文本文件时,它从该文件打开的那一刻开始使用该文件的版本,而不考虑下面的编辑。我希望这两个脚本都能使用文本文件的最新版本(我不会实时查看)。

我想提出问题的一种方法是:处理这些脚本的最佳方法是什么?我应该何时关闭并打开第一个文件?

3 个答案:

答案 0 :(得分:0)

您可能遇到的一个问题是当另一个进程尝试访问该文件时,该文件被一个进程锁定。为避免这种情况,您应该打开,读入整个文件(或写入新行)并立即关闭它。

同样,您可能希望在打开时添加错误处理,如果由于文件被锁定而失败,则可以在短暂停顿后再次尝试。

答案 1 :(得分:0)

  

我知道当脚本打开文本时   文件它正在使用的版本   从那时起该文件   打开,不考虑跟随   编辑

这是错误的陈述。例如,在Unix中尝试以下命令:

tail -f <some file>

然后尝试在该文件中添加行。 tail命令将跟随您的添加。 (假设你在写作时定期做flush)。

答案 2 :(得分:0)

tail命令可以执行您想要的操作,否则您需要打开,编辑,保存,关闭一个脚本,然后另一个脚本打开,读取,关闭等等。脚本必须轮流