我想从 python 访问一个 android 设备来下载一些照片。libmtp 从 CLI 工作。比pymtp。它已经存在了一段时间,但它是为 python 2 设计的,我正在使用 python 3。同时修复了几个小问题,但我遇到了函数 get_filelisting 的错误,特别是本节:
ret = []
next = files
while next:
ret.append(next.contents)
if (next(next.contents) is None):
break
next = next(next.contents)
该错误与“下一个”有关。
那部分对我来说看起来很奇怪,我已经在 python 中编码了一段时间,但我是 ctypes 的新手。尝试了很多变种,都失败了。“下一个”可能与 python 内置函数混淆,所以我将它重命名为 nextpointer 并来到这段代码:
ret = []
nextpointer = files
while nextpointer:
ret.append(nextpointer.contents)
nextpointer = nextpointer.contents.next
它似乎有效,但它是否偶然有效?它有任何设计缺陷吗?任何有 python ctypes 经验的人都可以确认这是一个解决方案吗?欢迎任何建议。