python 使用 sftp :PySftp

這篇我們會教學幾件事,連線, 列出清單,抓取資料,剩下的其實就請自己看文件吧!

首先我們一樣要先安裝套件

pip install pysftp

接著進入正題:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import pysftp
sHostName = '連線目標 host'
sUserName = '帳號'
sPassWord = '密碼'
sPort = '通訊 port'

cnopts = pysftp.CnOpts(knownhosts='known_hosts')
cnopts.hostkeys = None
with pysftp.Connection(sHostName, username=sUserName, password=sPassWord,port=22, cnopts=cnopts) as sftp:

這樣基本的連線就算完成了,不過需要注意的一件事 因為我們 hostkeys 選擇 None 所以在連線時他會噴出很大一份警告
不過這不影響使用

接著我們如果要顯示目錄中的內容:
# 取得目錄內容
directory = sftp.listdir_attr()
# 印出結果
for attr in directory:
print (attr.filename,attr)

這樣就可以了


接著就是下載了,下載也只是告訴他遠端路徑和本地路徑即可
for attr in directory:
sftp.get(attr.filename,'./local_dir/'+attr.filename)

sftp.get 的第一個參數就是遠端的檔名, 第二個參數就是本地端的路徑和檔名

這樣就可以摟

留言