FTP上傳檔案小工具
from ftplib import FTP
import os
#建立一個FTP上傳腳本
class Myftp:
def __init__(self):
#建立FTP物件
self.ftp=FTP()
#打開調適級別2 顯示詳細信息
self.ftp.set_debuglevel(1)
def connect(self,IP,port):
'連接ftp,IP和端口, 連接成功時顯示歡迎'
self.ftp.connect(IP,port)
print(self.ftp.getwelcome())
def login(self,user,password):
self.ftp.login(user=user,passwd=password,acct='my_account')
def upload(self,local_file,remote_file):
self.local=local_file #本地目錄
self.remote=remote_file#遠端目錄
#遠端目錄,必須是伺服器上存在且有權限訪問的目錄
if not os.path.exists(self.local):
#本地目錄不存在
raise FileNotFoundError(f'本地檔案{self.local}沒有找到')
with open(self.local,'rb')as file:
self.ftp.storbinary('STOR ' + self.remote,file)
def disconnect(self):
'斷開連接'
self.ftp.quit()
wow=Myftp() #設定實例物件
wow.connect(IP='127.0.0.1',port=35353) #連接到這個IP和 port
wow.login(user='qoo',password='0000') #登入用帳號密碼
local_file_path='C:\\Users\\K\\OneDrive\\桌面\\leetcode\\新增資料夾\\test1.txt'
remote_file='ItWork.txt'
wow.upload(local_file=local_file_path,remote_file=remote_file) #已2進制的方式讀取loacl_file_path, 然後上傳到遠端目錄
wow.disconnect()
----------------終端機
*resp* '220 pyftpdlib 1.5.7 ready.'
*welcome* '220 pyftpdlib 1.5.7 ready.'
220 pyftpdlib 1.5.7 ready.
*cmd* 'USER qoo'
*resp* '331 Username ok, send password.'
*cmd* 'PASS ****'
*resp* '230 Login successful.'
*cmd* 'TYPE I'
*resp* '200 Type set to: Binary.'
*cmd* 'PASV'
*resp* '227 Entering passive mode (127,0,0,1,196,39).'
*cmd* 'STOR ItWork.txt'
*resp* '125 Data connection already open. Transfer starting.'
*resp* '226 Transfer complete.'
*cmd* 'QUIT'
*resp* '221 Goodbye.'
PS C:\Users\K\OneDrive\桌面\leetcode\新增資料夾>
標籤: 工具

0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁