我有一个小问题。我有一个我正在研究的项目,它需要两个程序来读/写一些.txt文件。
Python写入一个.txt文件,C ++从中读取。 C ++做了它需要做的事情,然后将自己的信息写入Python必须阅读的另一个.txt文件中。
我想知道的是,如果Python在打开相同的文件之前关闭了.txt文件,我怎么能用C ++来检查,因为Python可能仍在写入内容,反之亦然?
如果您需要有关此难题的任何额外信息,请随时与我联系。
答案 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");
}
答案 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)
完成上述操作后,文件将关闭。