FTP即檔案傳輸協定(File Transfer Protocol),是用於在網路上進行檔案傳輸的一種標準協定。 FTP客戶端可以將檔案從本機上傳到伺服器或從伺服器下載到本機。
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中文網其他相關文章!