目標是
創建一個包含資料的臨時 csv 檔案并將其上傳到 sftp。要填充的資料是 TheList 并且來自類“list”。
我能達到什么
- 創建到 sftp 的連接
- 將檔案推送到 sftp
下面的代碼會發生什么
有一個檔案已創建/放入 sftp,但該檔案為空且為 0 位元組。
問題
我怎樣才能在 sftp 上擁有一個型別為 csv 且內容為 TheList 的檔案?
import paramiko
import tempfile
import csv
# code part to make and open sftp connection
TheList = [['name', 'address'], [ 'peter', 'london']]
csvfile = tempfile.NamedTemporaryFile(suffix='.csv', mode='w', delete=False)
filewriter = csv.writer(csvfile)
filewriter.writerows(TheList)
sftp.put(csvfile.name, SftpPath "anewfile.csv")
# code part to close sftp connection
uj5u.com熱心網友回復:
您不需要創建臨時檔案。您可以使用csv.writer使用打開的類似檔案的物件將行直接寫入 SFTP SFTPClient.open:
with sftp.open(SftpPath "anewfile.csv", mode='w', bufsize=32768) as csvfile:
writer = csv.writer(csvfile, delimiter=',')
filewriter.writerows(TheList)
另請參閱pysftp putfo 在 SFTP 服務器上創建一個空檔案但不流式傳輸來自 StringIO 的內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/534879.html
