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は初めてです。多くのバリアントを試しましたが、すべて失敗しました。"next" は python の組み込み関数と混同する可能性があるため、名前を nextpointer に変更して、次のコードにたどり着きました。
ret = []
nextpointer = files
while nextpointer:
ret.append(nextpointer.contents)
nextpointer = nextpointer.contents.next
動作しているように見えますが、偶然に動作しましたか? 設計上の欠陥はありますか?Python ctypes の経験がある人は、これが解決策であることを確認できますか? どんな提案でも大歓迎です。