Zakończyłeś pobieranie.
Aby zapoznać się z częścią dotyczącą przesyłania, zobacz Jak przenieść DataFrame Pandas do .csv na SFTP za pomocą biblioteki Paramiko w Pythonie? – Chociaż jest to dla Paramiko, pysftp Connection.open
metoda
zachowuje się identycznie jak Paramiko SFTPClient.open
, więc kod jest taki sam.
Pełny kod może wyglądać następująco:
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())
Powyższe aktualizuje ten sam plik. Jeśli chcesz przesłać do innego pliku, użyj tego:
# 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)
Na potrzeby bufsize
, zobacz:
Zapis do pliku na serwerze SFTP otwartym przy użyciu metody pysftp "open" jest powolny
Obowiązkowe ostrzeżenie:nie ustawiaj cnopts.hostkeys = None
, chyba że nie zależy Ci na bezpieczeństwie. Aby uzyskać prawidłowe rozwiązanie, zobacz Weryfikuj klucz hosta za pomocą pysftp
.