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
.