Готови сте с изтеглянето.
За частта за качване вижте Как да прехвърлите Pandas DataFrame към .csv на SFTP с помощта на библиотеката Paramiko в Python? – Докато е за Paramiko, pysftp Connection.open
метод
се държи идентично с Paramiko SFTPClient.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
, вижте:
Записването във файл на SFTP сървър, отворен чрез метода "open" на pysftp, е бавно
Задължително предупреждение:Не задавайте cnopts.hostkeys = None
, освен ако не ви е грижа за сигурността. За правилното решение вижте Проверете ключа на хоста с pysftp
.