python
ftp
sftp
方法名稱 | 說明 | 範例 |
---|---|---|
pwd | 目前路徑 | print(sftp.pwd) |
cwd() | 移動目錄 | sftp.cwd('/test') |
list_dir() | 取得目錄下所有檔案和目錄(僅名稱) | sftp.list_dir() |
listdir_attr() | 取得目錄下所有檔案和目錄(含屬性) | sftp.listdir_attr() |
exists() | 判斷檔案或目錄是否存在 | sftp.exists('hello') |
mkdir() | 建立新的目錄 | sftp.mkdir('hello') |
put() | 上傳檔案到目前路徑 | sftp.put('a.txt', 'c.txt') |
get() | 下載目前路徑下的檔案 | sftp.get('a.txt', 'b.txt') |
isdir() | 判斷檔案是否為目錄 | sftp.isdir('hello') |
isfile() | 判斷檔案是否為檔案 | sftp.isfile('a.txt') |
補充
- sftp為已連線的物件
SFTP Server連線時會檢查HostKey,如果沒有提供的話會出現錯誤而造成無法連線,
有幾種解決方式如下:
~/.ssh/known_hosts
加入Public Key先使用ssh-keyscan
工具掃描該站台的Public Key
然後再將掃描得到的Public Key加入到~/.ssh/known_hosts
檔案中
在Python內加入下面程式碼:
補充:
如果該server並非使用標準的port 22,可以在
pysftp.Connection()
方法加上port=21
參數來指定port。