7

FTPLib を使用してファイルをフェッチするモジュールを作成しています。(ブロックに加えて)値をコールバックに渡す方法を見つけたいです。基本的に、私のコールバックは

 def handleDownload(block, fileToWrite):
    fileToWrite.write(block)

そして、私は電話する必要があります

ftp.retrbinary('RETR somefile', handleDownload)

そして、ファイルハンドルを渡します。これを行う方法はありますか?

4

2 に答える 2

0

このコードは私のために働いた。

class File:

    cleared = False

    def __init__(self, filepath):
        self.filepath = filepath

    def write(self,block): 
        if not File.cleared:
            with open(f'{self.filepath}', 'wb') as f:
                File.cleared = True
                with open(f'{self.filepath}', 'ab') as f:
                f.write(block)
        else:
             with open(f'{self.filepath}', 'ab') as f:
                 f.write(block)

ftp.retrbinary("RETR somefile", File(filepath).write)



    
于 2021-07-17T12:48:27.553 に答える