Python 은 sftp 를 사용 하여 업로드 와 다운로드 기능(인 스 턴 스 코드)을 실현 합 니 다.

Python 에 서 는 paramiko 모듈 의 sftp 를 사용 하여 원 격 호스트 에 로그 인하 여 업로드 와 다운로드 기능 을 실현 할 수 있 습 니 다.
1.기능 실현
입력 매개 변수 에 따라 파일 인지 디 렉 터 리 인지 판단 하여 업로드 와 다운 로드 를 진행 합 니 다.
로 컬 매개 변수 local 은 원 격 매개 변수 reote 형식 과 일치 해 야 합 니 다.파일 이름 으로 끝나 고 디 렉 터 리 는\\로 끝 납 니 다.
업로드 와 다운로드 의 로 컬 과 원 격 디 렉 터 리 가 존재 해 야 합 니 다.
이상 포획
2.코드 구현

#!/usr/bin/python
# coding=utf-8
import paramiko
import os
def sftp_upload(host,port,username,password,local,remote):
  sf = paramiko.Transport((host,port))
  sf.connect(username = username,password = password)
  sftp = paramiko.SFTPClient.from_transport(sf)
  try:
    if os.path.isdir(local):#             
      for f in os.listdir(local):#      
        sftp.put(os.path.join(local+f),os.path.join(remote+f))#        
    else:
      sftp.put(local,remote)#    
  except Exception,e:
    print('upload exception:',e)
  sf.close()
def sftp_download(host,port,username,password,local,remote):
  sf = paramiko.Transport((host,port))
  sf.connect(username = username,password = password)
  sftp = paramiko.SFTPClient.from_transport(sf)
  try:
    if os.path.isdir(local):#             
      for f in sftp.listdir(remote):#      
         sftp.get(os.path.join(remote+f),os.path.join(local+f))#       
    else:
      sftp.get(remote,local)#    
  except Exception,e:
    print('download exception:',e)
  sf.close()
if __name__ == '__main__':
  host = '192.168.1.2'#  
  port = 22 #  
  username = 'root' #   
  password = '123456' #  
  local = 'F:\\sftptest\\'#       ,     ,   windows    ,window           
  remote = '/opt/tianpy5/python/test/'#       ,     ,   linux    
  sftp_upload(host,port,username,password,local,remote)#  
  #sftp_download(host,port,username,password,local,remote)#  
3.총화
상기 코드 는 파일 과 디 렉 터 리 의 업로드 와 다운 로드 를 실현 하고 파일 을 단독으로 업로드 하고 다운로드 할 수 있 으 며 디 렉 터 리 에 있 는 파일 을 대량으로 업로드 하고 다운로드 할 수 있어 기본적으로 필요 한 기능 을 실현 하 였 으 나 디 렉 터 리 가 존재 하지 않 는 상황 과 여러 호스트 에 업로드 하고 다운로드 하 는 상황 에 대해 서 는 보완 이 필요 하 다.

좋은 웹페이지 즐겨찾기