.txt文件已关闭吗?

时间:2017-04-02 13:50:49

标签: python c++

我有一个小问题。我有一个我正在研究的项目,它需要两个程序来读/写一些.txt文件。

Python写入一个.txt文件,C ++从中读取。 C ++做了它需要做的事情,然后将自己的信息写入Python必须阅读的另一个.txt文件中。

我想知道的是,如果Python在打开相同的文件之前关闭了.txt文件,我怎么能用C ++来检查,因为Python可能仍在写入内容,反之亦然?

如果您需要有关此难题的任何额外信息,请随时与我联系。

3 个答案:

答案 0 :(得分:1)

每当在python中使用:

f.open()

始终遵循

f.close()

然后你知道它关闭了

见:

https://docs.python.org/2/tutorial/inputoutput.html

https://www.tutorialspoint.com/python/file_close.htm

re:评论

ETA

How to check if a file has been opened by another application in C++?

Is there a way to check if a file is in use?

C/C++ Standard Function to Check if a file is used by another process?

Way to check in C/C++ if a file is in use?

虽然hacky,但我认为阅读之后我最喜欢的是这个:

  if (  0 != rename("c:/foo.txt", "c:/foo.txt")  ) {
     printf("already opened\n");
  }

https://stackoverflow.com/a/1048721/3680588

答案 1 :(得分:0)

你可能会考虑让每个"作家"进程将其输出写入临时文件,关闭该文件,然后将其重命名为" reader"过程正在寻找。

如果文件存在,则相应的阅读器进程知道它可以从中读取。

答案 2 :(得分:-1)

使用with open()方法始终在执行操作后关闭文件。请参阅Input and Output documentation中的第7.2节。

with open(in_file, 'w') as f:
    content = 'Example text'
    f.write(content)

完成上述操作后,文件将关闭。