總覽
在上一篇文章中,我們介紹了Python中的ftplib模塊,您可以閱讀有關的更多信息,見:《在Python中,如何使用FTP 》。
在這篇文章中,我們將介紹pysftp模塊。 SFTP(安全文件傳輸協議)用於通過Internet安全地交換文件。
pysftp是什麽?
pysftp是一個易於使用的sftp模塊,它利用了paramiko和pycrypto。它提供了一個簡單的sftp接口。
pysftp的一些特性是:
- 自動優雅地處理RSA和DSS私鑰文件。
- 支持加密的私鑰文件。
- 可以啟用/禁用日誌記錄
我為什麽要使用pysftp?
當您想在python中通過Internet安全地交換文件時。
如何安裝pysftp?
pysftp在PyPi上列出,可以使用pip安裝。
# Search for pysftp
pip search pysftp
pysftp # - A friendly face on SFTP
#Install pysftp
pip install pysftp
如何使用pysftp?
使用pysftp很容易,我們將展示一些有關如何使用它的示例:
列出遠程目錄
要連接到我們的FTP服務器,我們首先必須導入pysftp模塊並指定(如果適用)服務器,用戶名和密碼憑據。
運行該程序後,您應該看到FTP服務器當前目錄下的所有文件和目錄。
import pysftp
srv = pysftp.Connection(host="your_FTP_server", username="your_username",
password="your_password")
# Get the directory and file listing
data = srv.listdir()
# Closes the connection
srv.close()
# Prints out the directories and files, line by line
for i in data:
print i
連接參數介紹
參數 | 描述 |
---|---|
host | 遠程計算機的主機名。 |
username | 在遠程計算機上的用戶名。(默認None) |
private_key | 私鑰文件。(默認None) |
password | 在遠程計算機上的密碼。(默認None) |
port | 遠程計算機的SSH端口。(默認22) |
private_key_pass | 如果使用加密的private_key,則為對應密碼(默認None) |
log | 是否輸出日誌,連接/握手詳細信息(默認False) |
下載/上傳遠程文件
與前麵的示例一樣,我們首先導入pysftp模塊並指定(如果適用)服務器,用戶名和密碼憑據。
我們還導入sys模塊,因為我們希望用戶指定要下載/上傳的文件。
import pysftp
import sys
# Defines the name of the file for download / upload
remote_file = sys.argv[1]
srv = pysftp.Connection(host="your_FTP_server", username="your_username",
password="your_password")
# Download the file from the remote server
srv.get(remote_file)
# To upload the file, simple replace get with put.
srv.put(remote_file)
# Closes the connection
srv.close()
下一步怎麽做?
上麵已經是完整的sftp連接過程了,接下來可以試一試腳本,進行更改,看看會發生什麽。嘗試添加錯誤處理。
如果不傳遞任何參數怎麽辦?或者通過提示輸入來向程序添加一些交互。