파 이 썬 아래 ftp 업로드 파일 Liux 서버

5339 단어 Pythonftplinux
모듈 소개:

from ftplib import FTP
 ftp = FTP() #    
 ftp.set_debuglevel(2) #      2       
 ftp.connect("IP", "port") #  ftp, IP   
 ftp.log("user", "password") #      、  
 
 ftp.cwd(pathname) #  FTP       
 ftp.dir() #          
 ftp.nlst() #        
 ftp.mkd(pathname) #      
 ftp.pwd() #        
 ftp.rmd(dirname) #      
 ftp.delete(filename) #      
 ftp.rename(from_name, to_name) #     
 ftp.storbinaly("STOR filename.txt", file_handel, bufsize) #       
 ftp.retrbinaly("RETR filename.txt", file_handel, bufsize) #   FTP  
기능 구현:
ftp.dir()는 디 렉 터 리 에 있 는 파일 정 보 를 표시 할 수 있 습 니 다.폴 더 의 개수 와 파일 수 를 각각 통계 해 야 하 는 것 을 고려 하여 폴 더 에 폴 더 와 파일 이 포함 되 어 있 습 니 다.dir()후의 디 렉 터 리 정 보 를 목록 에 넣 고 목록 을 조작 합 니 다.하위 폴 더 에 들 어간 후 재 귀적 호출 작업 을 진행 합 니 다.

 # -*- 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) #       dir(),       
  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")
결과 보 여주 기:

전체 업로드 프로그램
Python 에 기본적으로 설 치 된 ftplib 모듈 은 FTP 클래스 를 정의 합 니 다.그 중에서 함수 가 유한 하여 간단 한 ftp 클 라 이언 트 를 실현 할 수 있 습 니 다.파일 을 업로드 하거나 다운로드 할 수 있 습 니 다.함 수 는 다음 과 같 습 니 다.

ftp    
from ftplib import FTP   #  ftp  
ftp=FTP()       #    
ftp.set_debuglevel(2)    #      2,      
ftp.connect("IP","port")   #   ftp sever   
ftp.login("user","password")  #      ,  
print ftp.getwelcome()   #       
ftp.cmd("xxx/xxx")    #      
bufsize=1024      #        
filename="filename.txt"   #       
file_handle=open(filename,"wb").write #           
ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #               
ftp.set_debuglevel(0)    #      
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()의 차이
FTP.quit():서버 에 QUIT 명령 을 보 내 고 연결 을 닫 습 니 다.이것 은 비교적 완 화 된 연결 방식 이지 만 서버 가 QUIT 명령 에 대해 오 류 를 되 돌 릴 때 이상 을 던 집 니 다.
FTP.close():일방적으로 연결 을 닫 습 니 다.닫 힌 연결 뒤에 사용 해 서 는 안 됩 니 다.예 를 들 어 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")
 #              
 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()

좋은 웹페이지 즐겨찾기