9

Python の pysftp を使い始めたばかりで、そのwalktree関数を呼び出す方法がわかりません。

パラメータがどのような形式を取るべきかをよりよく理解するのに役立ついくつかのコード( http://pydoc.net/Python/pysftp/0.2.8/pysftp/にあります)を見つけました

def walktree(self, remotepath, fcallback, dcallback, ucallback, recurse=True):
    '''recursively descend, depth first, the directory tree rooted at
    remotepath, calling discreet callback functions for each regular file,
    directory and unknown file type.

    :param str remotepath:
        root of remote directory to descend, use '.' to start at
        :attr:`.pwd`
    :param callable fcallback:
        callback function to invoke for a regular file.
        (form: ``func(str)``)
    :param callable dcallback:
        callback function to invoke for a directory. (form: ``func(str)``)
    :param callable ucallback:
        callback function to invoke for an unknown file type.
        (form: ``func(str)``)
    :param bool recurse: *Default: True* - should it recurse

    :returns: None

しかし、「通常のファイル、ディレクトリ、および不明なファイル タイプに対して呼び出すコールバック関数」の正確な意味については、まだ混乱しています。

公式ドキュメントも確認しました: https://media.readthedocs.org/pdf/pysftp/latest/pysftp.pdf

walktree()しかし、関数について教えてくれるのは、次のことだけです。

リモートディレクトリ構造を再帰的に (デフォルトで) ウォークし、検出した ファイル、ディレクトリ、または不明なエンティティごとにユーザー指定のコールバック関数を呼び出すことができる強力なメソッドです。これはpysftp のメソッドで使用され、独自の入札を行うために非常に効果的に使用できます。各コールバックには、エンティティのパス名が提供されます。(フォーム: )get_xfunc(str)

私が感じたのは、それを適切に呼び出す方法について多くの情報を与えてくれませんでした.

誰かがこの関数を正しく呼び出す例と、選択した引数を渡す理由の説明を提供できれば、大歓迎です!

4

2 に答える 2

0

それが実際の問題である場合は、 callbackとは何かを学びます。

の 3 つの引数すべてにwalktree、単一の文字列引数を取る関数への参照を渡す必要があります。がディレクトリ構造を再帰するときwalktree、見つかったファイル システム オブジェクトごとにこれらの関数の 1 つを「コールバック」し、オブジェクトへのパスを (文字列) 引数として渡します。

通常、関数の実装には何らかの状態 (コンテキスト) が必要です。つまり、見つかったパスを格納するコンテナへの参照です。グローバル変数の使用を避けるために、質問で参照した pysftp サンプルは、プレーンな関数の代わりにヘルパー クラスのメソッドを渡し、状態 (およびコンテナー) をオブジェクト インスタンスに保持flistdlistますulist

于 2014-10-29T07:25:04.037 に答える