下载文件,验证下载,如果没有下载则再次尝试

时间:2015-05-26 04:29:50

标签: python loops

这是我想要做的:

  1. 使用Python 3和Selenium,单击链接下载文件(但它可以是通过任何方法下载的文件)。
  2. 每50毫秒检查一次以确保文件存在。如果文件在5秒后不存在,请再次下载该文件。
  3. 如果我收到该文件,请继续执行该脚本。
  4. 如果我没有收到该文件,请最多尝试3次以获取该文件。如果我在3次尝试后仍然没有收到该文件,请退出该脚本。
  5. 以下代码对我不起作用:

    loop_1 = 0
    while loop_1 < 3:
    
    ##### download the file
    
        driver.find_element_by_link_text('Download Search Results').click()
    
        ##### check the existence of the downloaded file; 
        ##### if not there within 5 seconds, download the file again
    
        loop_2 = 0
        while loop_2 < 100:
            f_exists = os.path.isfile('/Users/jeff/downloaded.csv')
            if f_exists != True:
                print(loop_2, 'file DOES NOT exist')
                loop_2 = loop_2 + 1
                time.sleep(.05)
            if f_exists == True:
                print(loop_1, 'file exists')
                break
        loop_1 = loop_1 + 1
    

1 个答案:

答案 0 :(得分:0)

为什么你看起来更干净时使用while循环?

for i in range(0,3):
    driver.find_element_by_link_text('Download Search Results').click()
    for j in range(0,101):
        f_exists = os.path.isfile('/Users/jeff/downloaded.csv')
        if not f_exists:
            print(j, 'file DOES NOT exist')
            time.sleep(.05)
        else:
            print(i, 'file exists')
            return