使用easywebdav进行下载会导致文件损坏

时间:2018-08-18 15:20:43

标签: python python-3.x webdav

我创建了一个小程序,用于从启用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)

1 个答案:

答案 0 :(得分:0)

我用notepad ++检查了22KB的文章,发现它是flashair卡的网页。在研究代码和文档后,我发现我不是在引用远程文件名,而只是在引用位置。修复代码后,要附加一个正斜杠和一个文件名。现在正确下载文件。