pyftpdlib能夠很是方便的幫咱們啓動一個FTP服務器,能夠用於測試,首先安裝pyftpdlib:html
pip install pyftpdlib
使用代碼啓動一個服務器:python
from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer authorizer = DummyAuthorizer() # 參數:用戶名,密碼,目錄,權限 authorizer.add_user('tim', '123456', r'H:\tmp\pyftp', perm='elradfmwMT') handler = FTPHandler handler.authorizer = authorizer # 參數:IP,端口,handler server = FTPServer(('0.0.0.0', 8888), handler) server.serve_forever()
固然也能夠經過命令行啓動一個服務:服務器
python -m pyftpdlib -i localhost -p 8888 -u tim -P 123456 -d H:\tmp\pyftp
# -*- coding: utf-8 -*- from ftplib import FTP ftp = FTP() # 控制日誌輸出 # ftp.set_debuglevel(2) ftp.connect("127.0.0.1", 8888) ftp.login("tim", "123456") print(ftp.dir()) # 顯示目錄下全部目錄的信息 print(ftp.nlst()) # 獲取文件名稱列表 ftp.mkd("/mkd") # 新建目錄 ftp.delete("hello.txt") # 刪除遠程文件 ftp.rename("ok.png", "nok.png") # 重命名 ftp.rmd("/data") # 刪除遠程目錄 ftp.cwd("mkd") # 修改工做目錄 ftp.pwd() # 返回當前所在位置
# -*- coding: utf-8 -*- from ftplib import FTP ftp = FTP() # 打開調試級別2,顯示詳細信息 ftp.set_debuglevel(2) ftp.connect("127.0.0.1", 8888) ftp.login("tim", "123456") bufsize = 1024 # 上傳二進制文件 fp = open(r"F:\picture\3.png", 'rb') ftp.storbinary('STOR ' + "/ok.png", fp, bufsize) # 上傳文本文件 fp = open(r"F:\picture\ok.txt", 'rb') ftp.storlines('STOR ' + "/hello.txt", fp) fp.close()
# -*- coding: utf-8 -*- from ftplib import FTP ftp = FTP() ftp.set_debuglevel(2) ftp.connect("127.0.0.1", 8888) ftp.login("tim", "123456") bufsize = 1024 # 下載二進制文件 fp = open(r"F:\picture\ooo.png", 'wb') ftp.retrbinary('RETR ' + "/ok.png", fp.write, bufsize) fp.close() # 注意下載文本文件是wt模式 fp = open(r"F:\picture\xx.txt", 'wt') ftp.retrlines('RETR ' + "/hello.txt", fp.write)