PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Odczytaj pliki CSV/Excel z pliku SFTP, wprowadź zmiany w tych plikach za pomocą Pand i zapisz z powrotem

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zrzut Postgres zawierający tylko części tabel dla migawki dewelopera

  2. Dlaczego różne wyniki liczenia przy kolejnych odczytach?

  3. Wstawianie danych do kolumny jsonb PostgreSQL za pomocą Daper.Net i NPGSQL

  4. Jak skonfigurować tunel SSH w Google Cloud Dataflow do zewnętrznego serwera bazy danych?

  5. java.lang.ClassNotFoundException:org.postgresql.Driver, Android