我创建了一个小程序,用于从启用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)
答案 0 :(得分:0)
我用notepad ++检查了22KB的文章,发现它是flashair卡的网页。在研究代码和文档后,我发现我不是在引用远程文件名,而只是在引用位置。修复代码后,要附加一个正斜杠和一个文件名。现在正确下载文件。