Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将文件上载到sharepoint_Python_Sharepoint_Ntlm - Fatal编程技术网

使用python将文件上载到sharepoint

使用python将文件上载到sharepoint,python,sharepoint,ntlm,Python,Sharepoint,Ntlm,我正在尝试使用python脚本将文件上载到sharepoint网站。当我使用cURL进行系统调用时,它可以工作,但在使用各种python库时它不起作用。出于某种原因,我不想在我的程序中进行系统调用 我尝试使用Requests和Requests\u NTLM库。我还尝试使用urllib2库 对于请求库,它会发回一个200状态码,但当我检查sharepoint时,该文件不在那里 通过系统调用使用cURL的工作代码: 导入操作系统 myCmd=“curl-T testcron.loghttp://my

我正在尝试使用python脚本将文件上载到sharepoint网站。当我使用cURL进行系统调用时,它可以工作,但在使用各种python库时它不起作用。出于某种原因,我不想在我的程序中进行系统调用

我尝试使用Requests和Requests\u NTLM库。我还尝试使用urllib2库

对于请求库,它会发回一个200状态码,但当我检查sharepoint时,该文件不在那里

通过系统调用使用cURL的工作代码:

导入操作系统
myCmd=“curl-T testcron.loghttp://mysharepoint.com/docshare/path/to/the/folder/ --ntlm-u“用户:密码”
操作系统(myCmd)
使用请求库发回状态代码200但文件未出现在sharepoint中的代码:

导入请求
从请求\u ntlm导入HttpNtlmAuth
url='1〕http://mysharepoint.com/docshare/path/to/the/folder/'
files={'file':open('testcron.log','rb')}
会话=请求。会话()
session.auth=HttpNtlmAuth('user','password')
r=session.post(url,files=files)
打印r.status\U代码
有没有办法通过请求(或其他python库)将文件上载到sharepoint文件夹


非常感谢

您是否分析了来自浏览器的真实请求?你只需要复制它,我做了很多pcap并分析了它们。如果我在请求中重用使用cURL的“put”方法,我会得到500个错误代码。奇怪的是,在curl pcap中,我可以看到在ntlm协商之后,sharepoint发送了一个代码100“继续”我从未成功地用requestsAnalyze和devTools复制的内容。。。复制为cURL似乎cURL正在使用webdav上传文件,请求没有做什么。有没有建议在请求中使用webdav?刚刚解决了这个问题(经过几天的调查…)。我必须在URL之后添加文件名,如下所示:r=session.put(URL+'output.xlsx',files=files)感谢您的帮助,今天我学到了!您是否分析了来自浏览器的真实请求?你只需要复制它,我做了很多pcap并分析了它们。如果我在请求中重用使用cURL的“put”方法,我会得到500个错误代码。奇怪的是,在curl pcap中,我可以看到在ntlm协商之后,sharepoint发送了一个代码100“继续”我从未成功地用requestsAnalyze和devTools复制的内容。。。复制为cURL似乎cURL正在使用webdav上传文件,请求没有做什么。有没有建议在请求中使用webdav?刚刚解决了这个问题(经过几天的调查…)。我必须在URL之后添加文件名,如下所示:r=session.put(URL+'output.xlsx',files=files)感谢您的帮助,今天我学到了!