我有一個小問題。我有一個我正在開發的項目,需要兩個程序來讀/寫一些.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 ........ –