ダウンロード部分が完了しました。
アップロード部分については、PythonのParamikoライブラリを使用してSFTPでPandasDataFrameを.csvに転送する方法を参照してください。 – Paramikoの場合ですが、 pysftp Connection.open
方法
ParamikoSFTPClient.open
、したがってコードは同じです。
完全なコードは次のようになります:
with sftp.open("/remote/path/data.csv", "r+", bufsize=32768) as f:
# Download CSV contents from SFTP to memory
df = pd.read_csv(f)
# Modify as you need (just an example)
df.at[0, 'Name'] = 'changed'
# Upload the in-memory data back to SFTP
f.seek(0)
df.to_csv(f, index=False)
# Truncate the remote file in case the new version of the contents is smaller
f.truncate(f.tell())
上記は同じファイルを更新します。別のファイルにアップロードする場合は、次を使用してください:
# Download CSV contents from SFTP to memory
with sftp.open("/remote/path/source.csv", "r") as f:
df = pd.read_csv(f)
# Modify as you need (just an example)
df.at[0, 'Name'] = 'changed'
# Upload the in-memory data back to SFTP
with sftp.open("/remote/path/target.csv", "w", bufsize=32768) as f:
df.to_csv(f, index=False)
bufsize
の目的で 、参照:
pysftpの「open」メソッドを使用して開いたSFTPサーバー上のファイルへの書き込みが遅い
必須の警告:cnopts.hostkeys = None
を設定しないでください 、セキュリティを気にしない限り。正しい解決策については、pysftpでホストキーを確認する
を参照してください。 。