Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建while循环来检查文件是否存在?_Python_While Loop_File Io - Fatal编程技术网

Python 如何创建while循环来检查文件是否存在?

Python 如何创建while循环来检查文件是否存在?,python,while-loop,file-io,Python,While Loop,File Io,我要做的是检查文件是否存在,如果不存在,则执行一个操作,然后再次检查,直到文件存在,然后代码继续执行其他操作。假设您在Linux上: 如果您确实希望避免任何类型的循环来查找文件是否存在,并且您确信将在某个时间创建该文件,并且您知道将创建该文件的目录,则可以使用跟踪父目录的更改。当某些内容发生更改时,它会通知您,您可以检测是否需要创建该文件 不过,根据您的需要,这可能会带来更多麻烦,在这种情况下,我建议使用类似Kyle解决方案的小型轮询功能。假设您使用的是Linux: 如果您确实希望避免任何类型的

我要做的是检查文件是否存在,如果不存在,则执行一个操作,然后再次检查,直到文件存在,然后代码继续执行其他操作。

假设您在Linux上:

如果您确实希望避免任何类型的循环来查找文件是否存在,并且您确信将在某个时间创建该文件,并且您知道将创建该文件的目录,则可以使用跟踪父目录的更改。当某些内容发生更改时,它会通知您,您可以检测是否需要创建该文件


不过,根据您的需要,这可能会带来更多麻烦,在这种情况下,我建议使用类似Kyle解决方案的小型轮询功能。

假设您使用的是Linux:

如果您确实希望避免任何类型的循环来查找文件是否存在,并且您确信将在某个时间创建该文件,并且您知道将创建该文件的目录,则可以使用跟踪父目录的更改。当某些内容发生更改时,它会通知您,您可以检测是否需要创建该文件


根据您的需要,这可能会带来更多麻烦,但是,在这种情况下,我建议使用类似Kyle解决方案的小型轮询功能。

为简单起见,我将实现一个小型轮询功能,并为安全起见设置一个超时:

def open_file(path_to_file, attempts=0, timeout=5, sleep_int=5):
    if attempts < timeout and os.path.exists(path_to_file) and os.path.isfile(path_to_file): 
        try:
            file = open(path_to_file)
            return file
        except:
            # perform an action
            sleep(sleep_int)
            open_file(path_to_file, attempts + 1)
def open_文件(路径到文件,尝试次数=0,超时时间=5,睡眠时间=5):
如果尝试<超时和os.path.存在(路径到文件)和os.path.isfile(路径到文件):
尝试:
文件=打开(路径到文件)
返回文件
除:
#采取行动
睡眠(睡眠)
打开\u文件(路径\u到\u文件,尝试次数+1)

我还将研究使用Python内置,因为这将跟踪/报告文件描述符的I/O事件

为简单起见,我将实现一个小型轮询功能,并为安全起见设置超时:

def open_file(path_to_file, attempts=0, timeout=5, sleep_int=5):
    if attempts < timeout and os.path.exists(path_to_file) and os.path.isfile(path_to_file): 
        try:
            file = open(path_to_file)
            return file
        except:
            # perform an action
            sleep(sleep_int)
            open_file(path_to_file, attempts + 1)
def open_文件(路径到文件,尝试次数=0,超时时间=5,睡眠时间=5):
如果尝试<超时和os.path.存在(路径到文件)和os.path.isfile(路径到文件):
尝试:
文件=打开(路径到文件)
返回文件
除:
#采取行动
睡眠(睡眠)
打开\u文件(路径\u到\u文件,尝试次数+1)

我还将研究如何使用Python内置,因为这将跟踪/报告文件描述符的I/O事件

请发布您的代码,并按照您的想法实现它。您可能会感到惊讶……^^^回答了我的问题!:)请把你的代码发布到你想实现的地方。您可能会感到惊讶……^^^回答了我的问题!:)我还应该提到,pynotify使用短轮询实现了一个观察者模式。我还应该提到,pynotify使用短轮询实现了一个观察者模式。见