Python中的模塊--ftplib模塊

模塊重的一些函數(shù)解釋

Python中默認安裝的ftplib模塊定義了FTP類耙箍,其中函數(shù)有限,可用來實現(xiàn)簡單的ftp客戶端酥馍,用于上傳或下載文件辩昆,函數(shù)列舉如下:

ftp登陸連接
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.cwd("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相關命令操作
ftp.cwd(pathname)                 #設置FTP當前操作的路徑
ftp.dir()                         #顯示目錄下所有目錄信息
ftp.nlst()                        #獲取目錄下的文件
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.retrbinary("RETR filename.txt",file_handel,bufsize)  #下載FTP文件

ftp.quit()與ftp.close()的區(qū)別:

  • FTP.quit():發(fā)送QUIT命令給服務器并關閉掉連接术辐。這是一個比較“緩和”的關閉連接方式,但是如果服務器對QUIT命令返回錯誤時施无,會拋出異常辉词。
  • FTP.close():單方面的關閉掉連接,不應該用在已經(jīng)關閉的連接之后猾骡,例如不應用在FTP.quit()之后瑞躺。

下面的栗子是我從ftp服務器下載腳本收集日志,然后將日志打包上傳至服務器的腳本兴想,里面的會話保持使用timeout=None無效幢哨,以后會逐步完善這個腳本,例如添加異常捕捉等嫂便。

栗子:

from ftplib import  FTP
import tarfile
import os
#import pexpect
def ftpconnec(host,username,password):
    ftp = FTP()
    ftp.set_debuglevel(2)
    ftp.login(username,password)
    return  ftp

def downloadfile(ftp,remotepath,localpath):
    bufsize = 1024
    file_handle = open(localpath,'wb')
    ftp.retrbinary('RETR '+remotepath,file_handle.write,bufsize)
    ftp.set_debuglevel(0)
    file_handle.close()

def collect():
    os.system("chmod +x 腳本")
    os.system("./腳本")
    
def tarfiles(localpath):
    tar = tarfile.open("***.tar.gz","w:gz")
    for root,dir,files in os.walk(localpath):
        for file in files:
            fullpath = os.path.join(root,file)
            tar.add(fullpath)
    tar.close()

def uploadfile(ftp,remotepath,localpath):
    bufsize = 1024
    file_handle = open(localpath,'rb')
    ftp.storbinary('STOR '+remotepath,file_handle,bufsize)
    ftp.set_debuglevel(0)
    file_handle.close()



if __name__ == "__main__":
    ftp = ftpconnec("IP","username","password")
    remotepath1 = "***"
    localpath1  = "***"
    localpath2  = "***"
    remotepath2 = "***"
    localpath3  = "***"
    downloadfile(ftp,remotepath1,localpath1)
    #collect()
    tarfiles(localpath2)
    ftp = ftpconnec("IP","username","password")
    uploadfile(ftp,remotepath2,localpath3)
    ftp.quit()
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捞镰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子毙替,更是在濱河造成了極大的恐慌岸售,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚龙,死亡現(xiàn)場離奇詭異冰评,居然都是意外死亡,警方通過查閱死者的電腦和手機木羹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門甲雅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坑填,你說我怎么就攤上這事抛人。” “怎么了脐瑰?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵妖枚,是天一觀的道長。 經(jīng)常有香客問我苍在,道長绝页,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任寂恬,我火速辦了婚禮续誉,結果婚禮上,老公的妹妹穿的比我還像新娘初肉。我一直安慰自己酷鸦,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著臼隔,像睡著了一般嘹裂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摔握,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天寄狼,我揣著相機與錄音,去河邊找鬼氨淌。 笑死例嘱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的宁舰。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼奢浑,長吁一口氣:“原來是場噩夢啊……” “哼蛮艰!你這毒婦竟也來了?” 一聲冷哼從身側響起雀彼,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤壤蚜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后徊哑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袜刷,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年莺丑,在試婚紗的時候發(fā)現(xiàn)自己被綠了著蟹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡梢莽,死狀恐怖萧豆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昏名,我是刑警寧澤涮雷,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站轻局,受9級特大地震影響洪鸭,放射性物質發(fā)生泄漏。R本人自食惡果不足惜仑扑,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一览爵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧夫壁,春花似錦拾枣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽司蔬。三九已至,卻和暖如春姨蝴,著一層夾襖步出監(jiān)牢的瞬間俊啼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工左医, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留授帕,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓浮梢,卻偏偏與公主長得像跛十,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子秕硝,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理芥映,服務發(fā)現(xiàn),斷路器远豺,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒奈偏。 unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解...
    上街買菜丶迷倒老太閱讀 1,361評論 0 20
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解包躯护。 uni...
    思夢PHP閱讀 1,984評論 1 24
  • 18.1 引言 TCP是一個面向連接的協(xié)議惊来。無論哪一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接棺滞。本章將...
    張芳濤閱讀 3,351評論 0 13
  • 1裁蚁、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)、netstat -nat 查看TCP各個狀態(tài)的數(shù)量2)继准、lso...
    北辰青閱讀 9,414評論 0 11