Python的FTP服務器與FTP基本操做

1、概覽

ftp概覽

2、Python FTP服務

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

pyftpdlib文檔測試

3、基本操做

# -*- 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()                        # 返回當前所在位置

4、上傳文件

# -*- 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()

5、下載文件

# -*- 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)
相關文章
相關標籤/搜索