我需要使用CPython在企业Sharepoint网站上下载文件。现有的代码库阻止我在不移植代码的情况下使用Ironpython,因此.NET的WebClient
库已经用完了。我还想在不提示用户保存的情况下下载文件,并且不提示用户输入网络凭据。我尝试了其他库,但它们都有缺点:
urllib2
加python-ntlm
:要求提供用户/通行证subprocess
使用wget
或cURL
:无法在未请求用户/传递的情况下进行身份验证我在pywin32
中找不到任何看似挂钩到urllib2或提供等效功能的内容。那么,有没有一种方法可以在不请求凭据的情况下下载文件而不提示用户点击“保存”?
答案 0 :(得分:4)
我最终找到使用urlmon.dll
函数的some VB code from a Microsoft support page我用一行ctypes
代码复制了它,它完全符合我的需要。
ctypes.windll.urlmon.URLDownloadToFileA(0,url,local_file_name,0,0)
url
是资源的位置(在这种情况下,是Sharepoint网站上的Excel文件)local_file_name
是要保存的文件的本地路径和名称。这会通过网络传递凭据而没有提示。