Security Python:检查文件是否存在,同时避免竞争条件,而不打开文件

Security Python:检查文件是否存在,同时避免竞争条件,而不打开文件,security,python-3.x,race-condition,large-files,file-exists,Security,Python 3.x,Race Condition,Large Files,File Exists,是否有一种方法可以在不将文件读入内存的情况下检查文件是否存在,从而避免任何潜在的争用情况 我见过一些使用try/catch来避免竞争条件的示例,但它们都使用如下方式将文件读入内存: with open filename as file 我有一个大文件(大约100mb),我需要检查它是否存在,但为了安全起见,我希望在检查时避免创建竞争条件。将整个文件读入内存是不切实际的。我在想什么 我是新来的,温柔点。避免比赛条件的全部目的是严格地确保打开的文件就是检查过的文件。试图一个没有另一个是不可能的 而

是否有一种方法可以在不将文件读入内存的情况下检查文件是否存在,从而避免任何潜在的争用情况

我见过一些使用try/catch来避免竞争条件的示例,但它们都使用如下方式将文件读入内存:

with open filename as file
我有一个大文件(大约100mb),我需要检查它是否存在,但为了安全起见,我希望在检查时避免创建竞争条件。将整个文件读入内存是不切实际的。我在想什么

我是新来的,温柔点。

避免比赛条件的全部目的是严格地确保打开的文件就是检查过的文件。试图一个没有另一个是不可能的


而且,
open()
不会将文件读入内存,因此问题的一部分一开始就没有意义。

经典的os.path.exists?无论如何,try/catch和open不读取文件,只给你一个句柄或filenotfounderror你能澄清一下你想要避免的种族状况吗?您提到的习惯用法的主要原因是读取文件并避免在os.path.exists()返回true和由于有人删除文件而导致打开失败之间出现争用条件谢谢!我以前的印象是“打开”会将整个文件读入内存,现在我意识到我错了!我的印象是open()将文件完全读取到内存中,这是我的问题。你是说它没有,这意味着我可以使用我见过的try/catch方法,而不用担心100mb内存被吃掉。这就是我的意思。谢谢你的澄清!