使用 easywebdav 下载会导致文件错误

Doing a download with easywebdav results in bad files

我创建了一个小程序,用于从启用了 FlashAir webdav 的 SD 卡下载图像文件。这适用于 Powershell,但尝试 Python 实现。

我在 easywebdav 可以下载文件的地方工作,但结果大小是 22Kb,这是错误的,windows 无法将它们识别为有效文件。

我已经对 client.py 应用了一个基本字符串修复来处理 Python 3.x 而不是在 How to overcome Python 3.4 NameError: name 'basestring' is not defined 找到的 2.x。

我在 Python 3.5.1.

import easywebdav
urlFlashAir = 'http://flashair'
imgLocation = '/DCIM/101MSDCF'
destLocation = 'c:\test3\'
remoteDirName = ''
webDavConnection = easywebdav.connect('flashair', '', '')
lsOutput = webDavConnection.ls(imgLocation)
for i in lsOutput:
    if i.size == 0:
        remoteDirName = i.name
    if i.size > 0:
        filename = (i.name).replace(remoteDirName,'')
        print(i.name)
        print(remoteDirName)
        print(filename)
        webDavConnection.download(imgLocation, destLocation + filename)

我用notepad++查看了22KB的文章,发现是flashair卡的网页。在调查代码和文档后,我发现我没有引用远程文件名,只是引用了位置。一旦我修复了代码以附加正斜杠和文件名。现在可以正确下载文件。