有沒有辦法檢查文件是否存在,避免任何潛在的競爭條件,而不是將文件讀入內存?Python:在不打開文件的情況下檢查文件的存在,同時避免競爭條件
我見過使用try/catch來避免競爭條件的例子,但他們都讀文件到內存中的東西,如:
with open filename as file
我有一個大文件(大約100MB),我需要檢查是否存在,但出於安全考慮,希望避免在檢查時創建競爭條件。將整個文件讀入內存是不切實際的。我沒有想到什麼?
我是新來的,要溫柔。
有沒有辦法檢查文件是否存在,避免任何潛在的競爭條件,而不是將文件讀入內存?Python:在不打開文件的情況下檢查文件的存在,同時避免競爭條件
我見過使用try/catch來避免競爭條件的例子,但他們都讀文件到內存中的東西,如:
with open filename as file
我有一個大文件(大約100MB),我需要檢查是否存在,但出於安全考慮,希望避免在檢查時創建競爭條件。將整個文件讀入內存是不切實際的。我沒有想到什麼?
我是新來的,要溫柔。
整個目的競賽條件避免是嚴格,以便打開的文件是檢查的文件。試圖讓一個沒有另一個是不合適的。
此外,open()
不會將該文件讀入內存,因此問題的一部分甚至沒有意義開始。
我的印象是open()將文件全部讀入內存,這是我的問題。你說它不會,這意味着我可以使用我見過的try/catch方法,而不用擔心會有100MB的RAM被吃掉。無論如何,這就是我的意思。謝謝澄清! – TheFunk
經典的os.path.exists?無論如何,嘗試/捕獲和打開不讀文件,只是給你一個句柄或FileNotFoundError – cox
你能澄清你試圖避免什麼競爭條件?與你提到的成語讀取文件的主要原因,並避免之間os.path.exists()返回true和打開之間的競爭條件會失敗,因爲有人刪除文件 – Foon
謝謝!我的印象是「開放式」將整個文件讀入內存之前,現在我意識到我錯了! – TheFunk