亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

python的學(xué)習(xí)(十三)---- ftplib模塊

來源:linda1000 發(fā)布時(shí)間:2018-11-03 15:51:40 閱讀量:1032

Python中的ftplib模塊


Python中默認(rèn)安裝的ftplib模塊定義了FTP類,其中函數(shù)有限,可用來實(shí)現(xiàn)簡(jiǎn)單的ftp客戶端,用于上傳或下載文件


FTP的工作流程及基本操作可參考協(xié)議RFC959


ftp登陸連接


from ftplib import FTP #加載ftp模塊


ftp=FTP() #設(shè)置變量

ftp.set_debuglevel(2) #打開調(diào)試級(jí)別2,顯示詳細(xì)信息

ftp.connect("IP","port") #連接的ftp sever和端口

ftp.login("user","password")#連接的用戶名,密碼

print ftp.getwelcome() #打印出歡迎信息

ftp.cmd("xxx/xxx") #更改遠(yuǎn)程目錄

bufsize=1024 #設(shè)置的緩沖區(qū)大小

filename="filename.txt" #需要下載的文件

file_handle=open(filename,"wb").write #以寫模式在本地打開文件

ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收服務(wù)器上文件并寫入本地文件

ftp.set_debuglevel(0) #關(guān)閉調(diào)試模式

ftp.quit #退出ftp

ftp相關(guān)命令操作


ftp.cwd(pathname) #設(shè)置FTP當(dāng)前操作的路徑

ftp.dir() #顯示目錄下文件信息

ftp.nlst() #獲取目錄下的文件

ftp.mkd(pathname) #新建遠(yuǎn)程目錄

ftp.pwd() #返回當(dāng)前所在位置

ftp.rmd(dirname) #刪除遠(yuǎn)程目錄

ftp.delete(filename) #刪除遠(yuǎn)程文件

ftp.rename(fromname, toname)#將fromname修改名稱為toname。

ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上傳目標(biāo)文件

ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下載FTP文件

網(wǎng)上找到一個(gè)具體的例子:


# 例:FTP編程

from ftplib import FTP

    

ftp = FTP()

timeout = 30

port = 21

ftp.connect('192.168.1.188',port,timeout) # 連接FTP服務(wù)器

ftp.login('UserName','888888') # 登錄

print ftp.getwelcome()  # 獲得歡迎信息 

ftp.cwd('file/test')    # 設(shè)置FTP路徑

list = ftp.nlst()       # 獲得目錄列表

for name in list:

    print(name)             # 打印文件名字

path = 'd:/data/' + name    # 文件保存路徑

f = open(path,'wb')         # 打開要保存文件

filename = 'RETR ' + name   # 保存FTP文件

ftp.retrbinary(filename,f.write) # 保存FTP上的文件

ftp.delete(name)            # 刪除FTP文件

ftp.storbinary('STOR '+filename, open(path, 'rb')) # 上傳FTP文件

ftp.quit()                  # 退出FTP服務(wù)器

完整的模板:


#!/usr/bin/python

# -*- coding: utf-8 -*-

import ftplib

import os

import socket

 

HOST = 'ftp.mozilla.org'

DIRN = 'pub/mozilla.org/webtools'

FILE = 'bugzilla-3.6.7.tar.gz'

def main():

    try:

        f = ftplib.FTP(HOST)

    except (socket.error, socket.gaierror):

        print 'ERROR:cannot reach " %s"' % HOST

        return

    print '***Connected to host "%s"' % HOST

 

    try:

        f.login()

    except ftplib.error_perm:

        print 'ERROR: cannot login anonymously'

        f.quit()

        return

    print '*** Logged in as "anonymously"'

    try:

        f.cwd(DIRN)

    except ftplib.error_perm:

        print 'ERRORL cannot CD to "%s"' % DIRN

        f.quit()

        return

    print '*** Changed to "%s" folder' % DIRN

    try:

        #傳一個(gè)回調(diào)函數(shù)給retrbinary() 它在每接收一個(gè)二進(jìn)制數(shù)據(jù)時(shí)都會(huì)被調(diào)用

        f.retrbinary('RETR %s' % FILE, open(FILE, 'wb').write)

    except ftplib.error_perm:

        print 'ERROR: cannot read file "%s"' % FILE

        os.unlink(FILE)

    else:

        print '*** Downloaded "%s" to CWD' % FILE

    f.quit()

    return

 

if __name__ == '__main__':

    main()


--------------------- 

作者:linda1000 

來源:CSDN 

原文:https://blog.csdn.net/linda1000/article/details/8255771 

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!


標(biāo)簽: 服務(wù)器搭建
分享:
評(píng)論:
你還沒有登錄,請(qǐng)先