Du har downloadet delen færdig.
For upload-delen, se Hvordan overføres Pandas DataFrame til .csv på SFTP ved hjælp af Paramiko Library i Python? – Mens det er til Paramiko, pysftp Connection.open
metode
opfører sig identisk med Paramiko SFTPClient.open
, så koden er den samme.
Fuld kode kan være som:
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())
Ovenstående opdaterer den samme fil. Hvis du vil uploade til en anden fil, skal du bruge denne:
# 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)
Med henblik på bufsize
, se:
At skrive til en fil på SFTP-serveren åbnet ved hjælp af pysftp "åben"-metoden er langsom
Obligatorisk advarsel:Indstil ikke cnopts.hostkeys = None
, medmindre du er ligeglad med sikkerhed. For den korrekte løsning se Bekræft værtsnøgle med pysftp
.