我目前正在使用selenium下载pdf(使用novaPDF)在Windows计算机上编写python程序,然后用新名称重写该pdf。
但是,此pdf的下载和最终保存位置位于共享网络驱动器上。我可以访问相关的文件夹,任何使用该程序的用户也可以访问正确的文件夹。
说到这里,我可以完美地下载文件(进入共享驱动器),但是当我尝试运行shutil.copy(curr, new)
将下载的文件重命名为正确的名称时,我得到{{1 }}。我意识到我可以移动或重命名该文件,但我遇到了类似的问题,因此我正在复制然后删除原始文件(打开以更改此文件)。
我认为这个问题是共享驱动器上的权限,但很有必要。我将继续自己开展这项工作,如果我得到解决方案,我会发布,但随时可以提出任何后续问题。永远感谢帮助!
谢谢!
答案 0 :(得分:0)
这并没有大规模地回答这个问题,但我会提供一些可能有助于某人完成类似项目的信息。
诀窍似乎在等待os.path.isfile
返回true。然后再等一会儿。我所做的是,我最终编写了一个辅助函数,该函数接受该方法,然后使用给定的重试次数调用它。这看起来效果很好,一般来说它对硒非常有用,因为有时页面的加载时间比预期的要长一些。
这是辅助函数:
def helper_function(self, method, *args):
'''
This method is a wrapper to allow calls to retry if the original
call fails
:return: the element if any
'''
exception = None
for i in xrange(config.number_of_retries):
try:
element = method(*args)
return element
except Exception as e:
exception = e
raise Exception("Number of retries exceeded: " + repr(exception))