最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python下ftp上傳文件linux服務(wù)器

 更新時間:2018年06月21日 15:11:28   作者:Gzigithub  
本篇文章給大家總結(jié)了Python下ftp上傳文件linux服務(wù)器的詳細(xì)功能代碼,有需要的朋友參考學(xué)習(xí)下。

模塊介紹:

from ftplib import FTP
 ftp = FTP() #設(shè)置變量
 ftp.set_debuglevel(2) #打開調(diào)試級別2 顯示詳細(xì)信息
 ftp.connect("IP", "port") #連接ftp, IP和端口
 ftp.log("user", "password") #連接的用戶名、密碼
 
 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(from_name, to_name) #修改文件名
 ftp.storbinaly("STOR filename.txt", file_handel, bufsize) # 上傳目標(biāo)文件
 ftp.retrbinaly("RETR filename.txt", file_handel, bufsize) # 上傳FTP文件

功能實現(xiàn):

ftp.dir() 能顯示目錄下的文件信息,考慮到要分別對文件夾個數(shù)和文件數(shù)目進(jìn)行統(tǒng)計,文件夾下存在文件夾和文件嵌套;將dir()后的目錄信息放入列表,對列表進(jìn)行操作;進(jìn)入子文件夾后進(jìn)行遞歸調(diào)用操作。

 # -*- coding: utf-8 -*-
 
 from ftplib import FTP
 
 ftp = FTP()
 ftp.connect('132.121.xx.xxx', 'xx909')
 ftp.login('crmyun_xxx', 'wyjjjjxJ')
 sum1 = 0
 sum2 = 0
 value = 0
 
 def search_file(start_dir):
  ftp.cwd(start_dir)
  print ftp.pwd()
  dir_res = []
  ftp.dir('.', dir_res.append) #對當(dāng)前目錄進(jìn)行dir(),將結(jié)果放入列表
  for i in dir_res:
   if i.startswith("d"):
    global sum1 
    sum1 += 1
    search_file(ftp.pwd()+"/"+i.split(" ")[-1])
    ftp.cwd('..')
   else:
    global sum2, value
    sum2 += 1
    val = i.split(" ")[-1]
    value += ftp.size(val)
    if ftp.pwd().endswith('/'):    
 #    print ftp.pwd()+val+"  "+str(ftp.size(val))+" B" #打印出每個文件路徑和大小
     pass
    else:    
 #    print ftp.pwd()+"/"+val+"  "+str(ftp.size(val))+" B"
     pass
 def sum_file(file_path):
  search_file(file_path)
  print "folder number is "+str(sum1)+", file number is "+str(sum2)+", Totle size is "+str(value)+" B"
  
 
 if __name__ == '__main__':
  sum_file("/apps/crmyun/crmyun_755")

展示結(jié)果:

完整上傳程序

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

ftp登陸連接
from ftplib import FTP   #加載ftp模塊
ftp=FTP()       #設(shè)置變量
ftp.set_debuglevel(2)    #打開調(diào)試級別2,顯示詳細(xì)信息
ftp.connect("IP","port")   #連接的ftp sever和端口
ftp.login("user","password")  #連接的用戶名,密碼
print ftp.getwelcome()   #打印出歡迎信息
ftp.cmd("xxx/xxx")    #進(jìn)入遠(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文件

FTP.quit()與FTP.close()的區(qū)別

FTP.quit():發(fā)送QUIT命令給服務(wù)器并關(guān)閉掉連接。這是一個比較“緩和”的關(guān)閉連接方式,但是如果服務(wù)器對QUIT命令返回錯誤時,會拋出異常。

FTP.close():單方面的關(guān)閉掉連接,不應(yīng)該用在已經(jīng)關(guān)閉的連接之后,例如不應(yīng)用在FTP.quit()之后。

例:下載、上傳文件

# coding: utf-8
from ftplib import FTP
import time
import tarfile
import os
# !/usr/bin/python
# -*- coding: utf-8 -*-

from ftplib import FTP

def ftpconnect(host, username, password):
 ftp = FTP()
 # ftp.set_debuglevel(2)
 ftp.connect(host, 21)
 ftp.login(username, password)
 return ftp

#從ftp下載文件
def downloadfile(ftp, remotepath, localpath):
 bufsize = 1024
 fp = open(localpath, 'wb')
 ftp.retrbinary('RETR ' + remotepath, fp.write, bufsize)
 ftp.set_debuglevel(0)
 fp.close()

#從本地上傳文件到ftp
def uploadfile(ftp, remotepath, localpath):
 bufsize = 1024
 fp = open(localpath, 'rb')
 ftp.storbinary('STOR ' + remotepath, fp, bufsize)
 ftp.set_debuglevel(0)
 fp.close()

if __name__ == "__main__":
 ftp = ftpconnect("113.105.139.xxx", "ftp***", "Guest***")
 downloadfile(ftp, "Faint.mp4", "C:/Users/Administrator/Desktop/test.mp4")
 #調(diào)用本地播放器播放下載的視頻
 os.system('start "C:\Program Files\Windows Media Player\wmplayer.exe" "C:/Users/Administrator/Desktop/test.mp4"')
 uploadfile(ftp, "C:/Users/Administrator/Desktop/test.mp4", "test.mp4")

 ftp.quit()

相關(guān)文章

  • Python詞法結(jié)構(gòu)

    Python詞法結(jié)構(gòu)

    這篇文章主要介紹了Python詞法結(jié)構(gòu),變量是一種存儲數(shù)據(jù)的載體,也就是一個容器。計算機(jī)中的變量是實際存在的數(shù)據(jù)或者說是存儲器中存儲數(shù)據(jù)的一塊內(nèi)存空間,變量的值可以被讀取和修改,這是所有計算機(jī)和控制的基礎(chǔ),下面詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-10-10
  • 詳解pandas中MultiIndex和對象實際索引不一致問題

    詳解pandas中MultiIndex和對象實際索引不一致問題

    這篇文章主要介紹了詳解pandas中MultiIndex和對象實際索引不一致問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 利用Python實現(xiàn)Windows定時關(guān)機(jī)功能

    利用Python實現(xiàn)Windows定時關(guān)機(jī)功能

    是最初的幾個爬蟲,讓我認(rèn)識了Python這個新朋友,雖然才剛認(rèn)識了幾天,但感覺有種莫名的默契感。下面通過這篇文章給大家介紹Python實現(xiàn)Windows定時關(guān)機(jī)功能,需要的朋友可以參考下
    2017-03-03
  • 最新評論

    平武县| 天津市| 紫云| 临清市| 安丘市| 扬中市| 商南县| 文化| 彭山县| 西林县| 商都县| 安西县| 荥经县| 怀集县| 吉木萨尔县| 龙井市| 武定县| 小金县| 淅川县| 东兰县| 抚顺县| 双峰县| 义马市| 滦平县| 连南| 霍林郭勒市| 定安县| 澜沧| 特克斯县| 合肥市| 武汉市| 苏尼特右旗| 安庆市| 禹州市| 黑河市| 杭州市| 阿克苏市| 柯坪县| 永康市| 五大连池市| 六安市|