Check and wait until a file exists to read it

前端 未结 4 2258
太阳男子
太阳男子 2020-12-04 16:50

I need to wait until a file is created then read it in. I have the below code, but sure it does not work:

import os.path
if os.path.isfile(file_path):
    re         


        
相关标签:
4条回答
  • 2020-12-04 16:57

    A simple implementation could be:

    import os.path
    import time
    
    while not os.path.exists(file_path):
        time.sleep(1)
    
    if os.path.isfile(file_path):
        # read file
    else:
        raise ValueError("%s isn't a file!" % file_path)
    

    You wait a certain amount of time after each check, and then read the file when the path exists. The script can be stopped with the KeyboardInterruption exception if the file is never created. You should also check if the path is a file after, to avoid some unwanted exceptions.

    0 讨论(0)
  • 2020-12-04 17:14

    The following script will break as soon as the file is dowloaded or the file_path is created otherwise it will wait upto 10 seconds for the file to be downloaded or the file_path to be created before breaking.

    import os
    import time
    
    time_to_wait = 10
    time_counter = 0
    while not os.path.exists(file_path):
        time.sleep(1)
        time_counter += 1
        if time_counter > time_to_wait:break
    
    print("done")
    
    0 讨论(0)
  • 2020-12-04 17:18

    This code can check download by file size.

    import os, sys
    import time
    
    def getSize(filename):
        if os.path.isfile(filename): 
            st = os.stat(filename)
            return st.st_size
        else:
            return -1
    
    def wait_download(file_path):
        current_size = getSize(file_path)
        print("File size")
        time.sleep(1)
        while current_size !=getSize(file_path) or getSize(file_path)==0:
            current_size =getSize(file_path)
            print("current_size:"+str(current_size))
            time.sleep(1)# wait download
        print("Downloaded")
    
    0 讨论(0)
  • 2020-12-04 17:22
    import os
    import time
    file_path="AIMP2.lnk"
    if  os.path.lexists(file_path):
        time.sleep(1)
        if os.path.isfile(file_path):
            fob=open(file_path,'r');
            read=fob.readlines();
            for i in read:
                print i
        else:
            print "Selected path is not file"
    else:
        print "File not Found "+file_path
    
    0 讨论(0)
提交回复
热议问题