我有一个小问题。我有一个我正在开发的项目,需要两个程序来读/写一些.txt文件。.txt文件是否已关闭?
的Python写入一个.txt文件,C++从中读取。 C++完成它需要做的事情,然后将自己的信息写入Python必须阅读的另一个.txt文件中。
我想知道的是我怎么能检查与C++ Python是否已经关闭打开同一个文件之前.txt文件,像Python仍可以写的东西进去,反之亦然?
如果您需要了解这一难题的任何额外的信息,请随时与我联系。
我有一个小问题。我有一个我正在开发的项目,需要两个程序来读/写一些.txt文件。.txt文件是否已关闭?
的Python写入一个.txt文件,C++从中读取。 C++完成它需要做的事情,然后将自己的信息写入Python必须阅读的另一个.txt文件中。
我想知道的是我怎么能检查与C++ Python是否已经关闭打开同一个文件之前.txt文件,像Python仍可以写的东西进去,反之亦然?
如果您需要了解这一难题的任何额外的信息,请随时与我联系。
时,在Python中,你使用:
f.open()
总是
f.close()
,那么你知道跟着它的关闭
见:
https://docs.python.org/2/tutorial/inputoutput.html
https://www.tutorialspoint.com/python/file_close.htm
回复:发表评论
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?
虽然哈克,我认为通过阅读后我最喜欢的是这一个:
if ( 0 != rename("c:/foo.txt", "c:/foo.txt") ) {
printf("already opened\n");
}
使用with open()
方法始终关闭文件进行操作以后。请参阅Input and Output documentation中的第7.2节。
with open(in_file, 'w') as f:
content = 'Example text'
f.write(content)
完成上述操作后,文件关闭。
这不是问题的问题。 –
问题在技术上要求C++解决方案来确定源文件是否已关闭。上述解决方案是一种确保文件操作在C++解读文件之前完成的方法。 OP询问了如何在打开Python文件之前知道它是否关闭。如果发布的操作已完成,并且'with open()'方法已退出,则文件将关闭并准备好打开并阅读。 – pstatix
你可能会考虑让每一个“作家”的过程输出写入到一个临时文件,关闭文件,然后将其重命名为“读者”的过程中寻找的文件名。
如果文件存在,则相应的读取器进程知道它可以从它读出。
添加最少的代码来重现此操作。 –
如果文本文件仅用于在两个进程之间传递消息,那么可能会更容易完全跳过该文件并直接进行通信?我知道Python可以调用C++使用'ctypes'模块... – Kevin
使用IPC ........ –