Anda telah menyelesaikan bagian pengunduhan.
Untuk bagian pengunggahan, lihat Bagaimana Cara Mentransfer Pandas DataFrame ke .csv di SFTP menggunakan Perpustakaan Paramiko dengan Python? – Sementara untuk Paramiko, pysftp Connection.open
metode
berperilaku identik dengan Paramiko SFTPClient.open
, jadi kodenya sama.
Kode lengkapnya bisa seperti:
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())
Di atas memperbarui file yang sama. Jika Anda ingin mengunggah ke file lain, gunakan ini:
# 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)
Untuk tujuan bufsize
, lihat:
Menulis ke file di server SFTP yang dibuka menggunakan metode pysftp "open" lambat
Peringatan wajib:Jangan setel cnopts.hostkeys = None
, kecuali jika Anda tidak peduli dengan keamanan. Untuk solusi yang benar, lihat Verifikasi kunci host dengan pysftp
.