sql >> Database teknologi >  >> RDS >> PostgreSQL

Læs CSV/Excel-filer fra SFTP-fil, foretag nogle ændringer i disse filer ved hjælp af Pandas, og gem tilbage

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 .



  1. Node MySQL escape LIKE-erklæring

  2. MYSQL modtager ikke data fra PHP

  3. Er der en smart måde at køre flere forespørgsler i mysql adskilt af et semikolon;

  4. Magento:Opret automatisk CSV-fil for hver afgivet ordre