{ "title": "Python 文件下载优化:点击下载按钮,下载文件", "description": "本代码展示了使用Python进行文件下载的优化方法,包括使用while循环重试下载,以及将重复代码块移出循环以提高代码效率。", "keywords": "Python, 文件下载, 优化, 下载重试, 代码效率, while循环", "content": "def click_download_file(self, urn, path):\n """点击下载按钮,下载文件""" downloaded_files_success = list() # 下载成功的文件列表\n downloaded_files_failed = list() # 下载失败的文件列表\n links = self.browser.safe_get_link(By.CSS_SELECTOR, ATTACHMENT_VIEW_WINDOW_ELEMENT)\n \n for link in links:\n # 获取文件名 文件大小\n file_title, download_time_limit, file_size = self.file_title_data(link, urn)\n self.browser.click_with_link(link)\n self.download_alert() # 文件下载过大\n logger.info("\n >> 【urn = {}】文件名{}文件大小{},下载时间{}".format(urn, file_title, file_size, download_time_limit))\n time.sleep(download_time_limit) # 文件下载时间\n \n status = self.download_file_is_successfully(path, file_title, file_size)\n if status:\n downloaded_files_success.append(file_title) # 下载成功\n else:\n retry_count = 0\n while retry_count < 3:\n self.download_alert() # 重试需要点击文件下载过大\n time.sleep(download_time_limit)\n status = self.download_file_is_successfully(path, file_title, file_size)\n if status:\n downloaded_files_success.append(file_title) # 重试成功\n logger.info("\n >> 【urn = {}】文件{}重试下载成功".format(urn, file_title))\n break\n else:\n logger.info("\n >> 【urn = {}】文件{}重试下载失败".format(urn, file_title))\n downloaded_files_failed.append(file_title) # 下载失败\n retry_count += 1\n\n if downloaded_files_failed:\n logger.info("\n >> 【urn = {}】下载失败文件列表:{}".format(urn, downloaded_files_failed))\n raise FileException(message=ErrorMsg.NO_DOWNLOADABLE_FILES, file_list=downloaded_files_failed)\n if downloaded_files_success:\n logger.info("\n >> 【urn = {}】下载成功文件列表:{}".format(urn, downloaded_files_success))\n new_file_title = self.modify_file(path, urn, downloaded_files_success) # 下载成功修改文件名\n return new_file_title\n"}

Python 文件下载优化:点击下载按钮,下载文件

原文地址: https://www.cveoy.top/t/topic/qhuY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录