Python編寫FTP客戶端

2021-08-15 16:38:39 字數 1860 閱讀 4513

之前寫過一篇ftp服務端的文章,這篇介紹一下客戶端吧。在使用虛擬機器的時候,由於虛擬機器工具沒安裝成功,所以我決定用ftp在主機與虛擬機器之間傳送檔案,在虛擬機器上開啟ftp服務,然後把客戶端放在主機上,當然也可以顛倒過來。

服務端請參考:python實現ftp伺服器

import ftplib

import sys

#獲取伺服器的ip位址(如192.168.1.107),使用sys.argv可以從命令列引數裡面獲取

if len(sys.argv) < 2:

tmp = input("please input server address:")

server_address = sys.argv[1]

#建立ftp例項,並顯示歡迎介面

ftp = ftplib.ftp(server_address)

print(ftp.getwelcome())

#登入,輸入伺服器裡新增過的使用者名稱和口令

ftp.login('user', 'pass')

#檔案上傳

def upload(fname):

fd = open(fname, 'rb')

new_name = input("input new name:")

#以二進位制的形式上傳

ftp.storbinary("stor %s" % new_name, fd)

fd.close()

print("upload finished")

def download(fname):

#構建檔案的儲存路徑,這裡用的是d盤,可以自行設定

new_path = "d:\\ftpdownload\\" + fname

fd = open(new_path, 'wb')

ftp.retrbinary("retr %s" % fname, fd.write)

fd.close()

print("download finished")

def main():

op = input("what do you want?(u/d/q)")

if op == "u":

#輸入檔案完整路徑,必要時可以用絕對路徑

fname = input("input the file of path:")

upload(fname)

elif op == "d":

fname = input("input the file name:")

download(fname)

else:

print("quit now!")

ftp.quit()

if __name__ == '__main__':

main()

ftp.cwd(pathname)           # 設定ftp當前操作的路徑

ftp.dir() # 顯示目錄下所有目錄的資訊

ftp.nlst() # 獲取目錄下的檔案

ftp.mkd(pathname) # 新建遠端目錄

ftp.rmd(dirname) # 刪除遠端目錄

ftp.pwd() # 返回當前所在位置

ftp.delete(filename) # 刪除遠端檔案

ftp.rename(old_name, new_name) #將fromname改為toname

ftp.storbinary('stor filename.txt',file_handel,[bufsize]) # 上傳目標檔案,最後乙個引數可以不填

FTP客戶端程式

ftp客戶端程式,vc6.0下除錯通過 client.c include client.h define sol socket 0xffff int fill host addr char host ip addr,struct sockaddr in host,int port else retu...

ftp客戶端程式

include include include include include pragma comment lib,ws2 32.lib file fp socket client,upload wsadata wsadata int wsareturn int portnum char spor...

ftp客戶端 學習筆記

檔案傳輸協議 ftp 作為網路共享檔案的傳輸協議,在網路應用軟體中具有廣泛的應用。ftp的目標是提高檔案的共享性和可靠高效地傳送資料。在傳輸檔案時,ftp 客戶端程式先與伺服器建立連線,然後向伺服器傳送命令。伺服器收到命令後給予響應,並執行命令。ftp 協議與作業系統無關,任何作業系統上的程式只要符...