1

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 の経験がある人は、これが解決策であることを確認できますか? どんな提案でも大歓迎です。

4

1 に答える 1