❶ 用python實現FTP功能
開發環境:
1、操作系統: Windows 10 X64
2、Pycharm 2020.2.1
新建項目後,創建兩個包 ftp_client與ftp_server,分別代表客戶端與服務端。
該項目的完成主要藉助了python提供的socketserver庫來進行連接。
本項目實現了客戶端對於服務端D://文件夾的增加文件,刪除文件,修改文件功能。分別以put,delete,modify表示。
對於client,實現了最基礎的交互功能,用戶可以用如put test.txt等命令來實現功能。修改文件,用戶首先輸入modify z.txt 命令,z.txt是D://文件夾中已經存在的文件,再根據提示,輸入想修改的內容即可修改成功。
在這一模塊中,將重點介紹我在實現項目的過程中遇到的問題。
1、bytes與str的轉換,傳輸以位元組流進行,但是輸出部分內容要以str形式,注意轉換
2、熟悉python的語法
3、熟悉文件相關操作
4、考慮傳輸文件過大的情況
該問題不影響項目的正常使用,但未找到較好的解決辦法
❷ Python中如何獲取FTP伺服器上的文件大小
這要看你下載用了哪個ftp庫
搜到的代碼
files = ftp.nlst()
for f in files:
print f
❸ 如何在Python中使用FTP
from ftplip import FTP # 首先要引入 ftplib 這個庫
# 接著,這是我自定義的幾個用於操作 ftp 的函數,def 後面跟的是自定義函數名,函數體內FTP 相關的語句和函數來自上面 import 那個包,你自己體會吧:
# 初始化 FTP 連接
def ftp_open(HOST,PORT,USERNAME,PASSWORD):
ftp=FTP()
ftp.set_debuglevel(2)
ftp.connect(host=HOST,port=PORT)
ftp.login(USERNAME,PASSWORD)
return ftp
# 關閉 FTP 連接
def ftp_close(ftp):
ftp.set_debuglevel(0)
ftp.quit()
# 文件上傳函數,filename 可以是windows 格式包含全路徑的文件
def ftp_up(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'rb')
ftp.storbinary('STOR %s' % os.path.basename(filename),file_handler)
file_handler.close()
print('FTP up OK.')
# 文件下載函數,filename 可以是windows 格式包含全路徑的文件
def ftp_down(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'wb')
ftp.retrbinary('RETR %s' % os.path.basename(filename),file_handler)
file_handler.close()
print('FTP down OK.')
❹ python 多個用戶對FTP上同一個文件做讀寫
你的意思是, 用戶用你的代碼來訪問文件? 你可以調用系統的介面來查看是否有人在使用文件; 或者在上下文管理器中加個鎖(只是個標記), 訪問的時候在旁邊隨便建個文件, 其他人看到文件存在就給個提示並退出. 讀寫完後刪除這個隨便的文件.