WebDAV的Python客户端库
我想在我的应用程序中实现一个功能,可以上传和处理WebDAV服务器上的文件。我在找一个成熟的Python库,希望它能提供类似于os.*
模块的接口,这样我就可以方便地操作远程文件。我在网上搜索了一些Python中关于WebDAV的选项,但我想知道现在哪些库使用得比较广泛。
7 个回答
我最近也遇到了类似的需求,所以测试了一些Python的WebDAV客户端,主要是用来从WebDAV服务器上传和下载文件。以下是我的一些经验总结:
1) 对我来说有效的是 python-webdav-lib。
这个库的文档不多,不过我简单看了一下代码,特别是示例部分,就搞明白怎么用它了。
2) PyDAV 0.21(我找到的最新版本)在Python 2.6上不工作,因为它把字符串当作异常。我没有尝试去修复这个问题,因为我担心后面会有更多不兼容的地方。
3) davclient 0.2.0。我看过这个库,但没有深入研究,因为它的文档没有提到我想要的API级别(文件上传和下载)。
4) Python_WebDAV_Library-0.3.0。这个库似乎没有上传功能。
很遗憾,对于这个问题(“用哪个Python的webdav库?”),肯定有很多人感兴趣,但却接受了一个不相关的回答(“别用Python的webdav库”)。这在Stackexchange上是个常见的问题。
对于那些想要找到真正答案的人,考虑到原问题中的要求(简单的API,类似于“os”模块),我可以推荐easywebdav。这个库的API非常简单,使用起来也很方便,提供了上传/下载和一些文件/目录管理的方法。由于实现比较简单,目前还不支持目录列表功能,不过这个问题已经提交了,作者打算添加这个功能。
我不太清楚有没有特别的工具,不过根据你使用的系统,可能通过文件系统来挂载和访问WebDAV提供的文件会更简单。比如有一个叫做 davfs2 的工具,而一些操作系统,比如Mac OS X,已经内置了对WebDAV文件系统的支持。