0

sftp 経由で (pysftp を使用して) cvs ファイルをリモート ホストにアップロードする python スクリプトを作成しています。すべて正常に動作しているように見えますが、アップロードされたファイルは常に 4096 バイトに切り捨てられます。sftp を使用して OS (Linux) からファイルをアップロードすると、すべて正常に動作します。4096 バイトのファイルのみを許可するようにどこかに設定されているデフォルトはありますか?

これが私のコードのsftp部分です:

def sftp_file():
try:
    s = sftp.Connection(host=dropbox, username='oemreport', private_key=private_key)
    s.put(report_file, export_file)
    s.close()

except Exception, e:
    print str(e)
4

1 に答える 1

1

「report_file」のファイル記述子が開いている場合、ファイル全体はまだディスクに書き込まれていないため、完全なファイルはアップロードされません。

最初にファイル記述子を閉じる必要があります。

report_file.close()
于 2015-09-03T13:14:33.417 に答える