파 이 썬 아래 ftp 업로드 파일 Liux 서버
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()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.