Python怎麼使用FTP上傳文件

WBOY
發布: 2023-04-29 09:49:13
轉載
3067 人瀏覽過

FTP簡介

FTP即檔案傳輸協定(File Transfer Protocol),是用於在網路上進行檔案傳輸的一種標準協定。 FTP客戶端可以將檔案從本機上傳到伺服器或從伺服器下載到本機。

ftplib模組

Python提供了一個標準函式庫ftplib,用於在Python中實作FTP客戶端的功能。使用ftplib,我們可以連接到FTP伺服器,執行各種FTP操作,如上傳和下載檔案等。

程式碼解釋

下面是一個使用Python透過FTP上傳檔案的範例程式碼:

from ftplib import FTP

import argparse

def ftpconnect(host, username, password):
    ftp = FTP()
    ftp.connect(host, 21)
    ftp.login(username, password)
    return ftp

#从本地上传文件到ftp
def uploadfile(ftp, remotepath, localpath):
    bufsize = 1024
    fp = open(localpath, 'rb')
    ftp.storbinary('STOR ' + remotepath, fp, bufsize)
    ftp.set_debuglevel(0)
    fp.close()

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('--ip', type=str, default = None)
    parser.add_argument('--user', type=str, default = None)
    parser.add_argument('--password', type=str, default = None)
    parser.add_argument('--localFileName', type=str, default = None)
    parser.add_argument('--fileName', type=str, default = None)
    args = parser.parse_args()
    ftp = ftpconnect(args.ip,args.user ,args.password)
    uploadfile(ftp, "/home/"+args.fileName, args.localFileName)
    ftp.quit()
登入後複製

首先,我們匯入ftplib模組和argparse模組。

接下來,定義了一個ftpconnect函數用來連接FTP伺服器。此函數需要3個參數:host(FTP伺服器IP位址或網域名稱)、username(使用者名稱)、password(密碼)。函數傳回一個FTP物件。

接著,定義了一個uploadfile函數,該函數用於從本機上傳檔案到FTP伺服器。函數需要3個參數:ftp(FTP物件)、remotepath(上傳到FTP伺服器的路徑)和localpath(本機檔案路徑)。函數開啟本機文件,使用FTP物件的storbinary方法上傳文件,最後關閉本機檔案和FTP連線。

最後,使用argparse模組解析命令列參數。命令列參數包括FTP伺服器的IP位址、使用者名稱、密碼、本機檔案路徑和上傳到FTP伺服器的路徑。在main函數中,先呼叫ftpconnect函數連接FTP伺服器,然後呼叫uploadfile函數上傳文件,最後關閉FTP連線。

運行結果

我們可以將上面的程式碼儲存為ftp_upload.py,並在命令列中執行以下命令:

python ftp_upload.py --ip 192.168.1.100 --user ftpuser --password ftppass --localFileName localfile.txt --fileName remotefile.txt
登入後複製

其中192.168.1.100是FTP伺服器IP位址,ftpuser是FTP使用者名,ftppass是FTP密碼,localfile.txt是本機檔案。

以上是Python怎麼使用FTP上傳文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!