PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Đọc tệp CSV / Excel từ tệp SFTP, thực hiện một số thay đổi trong các tệp đó bằng Pandas và lưu lại

Bạn đã hoàn tất phần tải xuống.

Đối với phần tải lên, hãy xem Cách chuyển Pandas DataFrame sang .csv trên SFTP bằng Thư viện Paramiko bằng Python? - Trong khi nó dành cho Paramiko, pysftp Connection.open phương pháp hoạt động giống hệt với Paramiko SFTPClient.open , vì vậy mã giống nhau.

Mã đầy đủ có thể như:

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())

Ở trên cập nhật cùng một tệp. Nếu bạn muốn tải lên một tệp khác, hãy sử dụng cái này:

# 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)

Với mục đích bufsize , hãy xem:
Ghi vào tệp trên máy chủ SFTP được mở bằng phương pháp pysftp "open" chậm

Cảnh báo bắt buộc:Không đặt cnopts.hostkeys = None , trừ khi bạn không quan tâm đến bảo mật. Để có giải pháp chính xác, hãy xem Xác minh khóa máy chủ bằng 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. Thực thi trình kích hoạt hoãn lại chỉ một lần trên mỗi hàng trong PostgreSQL

  2. Làm cách nào để bạn JSON Marshall a pq.NullTime bằng UTC thay vì múi giờ địa phương?

  3. Một trường rails là một mảng các đối tượng JSON?

  4. GROUP BY và tổng hợp các giá trị số tuần tự

  5. Debezium Heartbeat Action không kích hoạt