Python使用ftplib實現(xiàn)簡易FTP客戶端的方法
更新時間:2015年06月03日 10:29:27 作者:m1331305
這篇文章主要介紹了Python使用ftplib實現(xiàn)簡易FTP客戶端的方法,實例分析了ftplib模塊相關設置與使用技巧,需要的朋友可以參考下
本文實例講述了Python使用ftplib實現(xiàn)簡易FTP客戶端的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
#!/usr/bin/python
#-*- coding:utf-8 -*-
from ftplib import FTP #加載ftp模塊
ftp=FTP() #設置變量
ftp.set_debuglevel(2) #打開調(diào)試級別2,顯示詳細信息
ftp.connect("IP","port") #連接的ftp sever和端口
ftp.login("user","password")#連接的用戶名,密碼
print ftp.getwelcome() #打印出歡迎信息
ftp.cmd("xxx/xxx") #更改遠程目錄
bufsize=1024 #設置的緩沖區(qū)大小
filename="filename.txt" #需要下載的文件
file_handle=open(filename,"wb").write
#以寫模式在本地打開文件
ftp.retrbinaly("RETR filename.txt",file_handle,bufsize)
#接收服務器上文件并寫入本地文件
ftp.set_debuglevel(0) #關閉調(diào)試模式
ftp.quit #退出ftp
ftp.dir() #顯示目錄下文件信息
ftp.mkd(pathname) #新建遠程目錄
ftp.pwd() #返回當前所在位置
ftp.rmd(dirname) #刪除遠程目錄
ftp.delete(filename) #刪除遠程文件
ftp.rename(fromname, toname)#將fromname修改名稱為toname。
ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上傳目標文件
一個FTP完整實例:
#coding:utf-8
from ctypes import *
import os
import sys
import ftplib
class myFtp:
ftp = ftplib.FTP()
bIsDir = False
path = ""
def __init__(self, host, port='21'):
self.ftp.set_debuglevel(2) #打開調(diào)試級別2,顯示詳細信息
#self.ftp.set_pasv(0) #0主動模式 1 #被動模式
self.ftp.connect( host, port )
def Login(self, user, passwd ):
self.ftp.login( user, passwd )
print self.ftp.welcome
def DownLoadFile( self, LocalFile, RemoteFile ):
file_handler = open( LocalFile, 'wb' )
self.ftp.retrbinary( "RETR %s" %( RemoteFile ), file_handler.write )
file_handler.close()
return True
def UpLoadFile( self, LocalFile, RemoteFile ):
if os.path.isfile( LocalFile ) == False:
return False
file_handler = open( LocalFile, "rb" )
self.ftp.storbinary( 'STOR %s'%RemoteFile, file_handler, 4096 )
file_handler.close()
return True
def UpLoadFileTree( self, LocalDir, RemoteDir ):
if os.path.isdir( LocalDir ) == False:
return False
LocalNames = os.listdir( LocalDir )
print RemoteDir
self.ftp.cwd( RemoteDir )
for Local in LocalNames:
src = os.path.join( LocalDir, Local)
if os.path.isdir( src ):
self.UpLoadFileTree( src, Local )
else:
self.UpLoadFile( src, Local )
self.ftp.cwd( ".." )
return
def DownLoadFileTree( self, LocalDir, RemoteDir ):
if os.path.isdir( LocalDir ) == False:
os.makedirs( LocalDir )
self.ftp.cwd( RemoteDir )
RemoteNames = self.ftp.nlst()
for file in RemoteNames:
Local = os.path.join( LocalDir, file )
if self.isDir( file ):
self.DownLoadFileTree( Local, file )
else:
self.DownLoadFile( Local, file )
self.ftp.cwd( ".." )
return
def show( self, list ):
result = list.lower().split( " " )
if self.path in result and "<dir>" in result:
self.bIsDir = True
def isDir( self, path ):
self.bIsDir = False
self.path = path
#this ues callback function ,that will change bIsDir value
self.ftp.retrlines( 'LIST', self.show )
return self.bIsDir
def close( self ):
self.ftp.quit()
ftp = myFtp('********')
ftp.Login('*****','*****')
#ftp.DownLoadFile('TEST.TXT', 'others\\runtime.log')#ok
#ftp.UpLoadFile('runtime.log', 'others\\runtime.log')#ok
#ftp.DownLoadFileTree('bcd', 'others\\abc')#ok
#ftp.UpLoadFileTree('aaa',"others\\" )
ftp.close()
print "ok!"
希望本文所述對大家的Python程序設計有所幫助。
相關文章
Python實現(xiàn)復制圖片到指定文件夾并按順序重新命名
這篇文章主要為大家詳細介紹了如何利用Python實現(xiàn)將360個文件夾里的照片,全部復制到指定的文件夾中,并且按照順序重新命名,感興趣的小伙伴可以了解一下2023-03-03
Python文件操作中進行字符串替換的方法(保存到新文件/當前文件)
這篇文章主要介紹了Python文件操作中進行字符串替換的方法(保存到新文件/當前文件) ,本文給大家介紹兩種方法,每種方法給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06

