Máte hotovou část stahování.
Část týkající se nahrávání naleznete v části Jak přenést Pandas DataFrame do .csv na SFTP pomocí Paramiko Library v Pythonu? – I když je to pro Paramiko, pysftp Connection.open
metoda
se chová stejně jako Paramiko SFTPClient.open
, takže kód je stejný.
Úplný kód může být takto:
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())
Výše uvedené aktualizuje stejný soubor. Pokud chcete nahrát do jiného souboru, použijte toto:
# 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)
Pro účely bufsize
, viz:
Zápis do souboru na SFTP serveru otevřeného metodou pysftp "open" je pomalý
Povinné upozornění:Nenastavujte cnopts.hostkeys = None
, pokud se nestaráte o bezpečnost. Správné řešení viz Ověření hostitelského klíče pomocí pysftp
.