파이썬은 ftp 서버와 클라이언트를 구현합니다

함께 만들고 함께 성장하기 위해 함께 노력하십시오! "너겟 데일리 뉴플랜 · 8월 업데이트 챌린지" 참여 22일차 입니다 . 이벤트 상세보기 클릭

파이썬에는 내장 ftp 클라이언트가 있지만 ftp 서버를 구현하려면 타사 라이브러리 pyftpdlib를 설치해야 합니다.

pyftpdlib

pyftpdlib는 완전한 기능을 갖춘 비동기 FTP 서비스, 오픈 소스 코드 주소를 구현합니다: github.com/giampaolo/p…

pyftpdlib 설치

많은 설치 방법이 있으며 pip가 권장됩니다.

pip는 Python용 패키지 설치 프로그램입니다. 실제로 pip는 Python Standard Library(The Python Standard Library)에 있는 패키지이지만 이 패키지는 특별하고 Python Standard Library(The Python Standard Library)에 있는 다른 패키지를 관리하는 데 사용할 수 있습니다. pip는 명령줄 프로그램입니다. pip가 설치되면 명령 프롬프트에서 실행할 수 있는 pip 명령이 시스템에 추가됩니다.

핍 설치:

  • 파이썬을 설치하십시오; 이것은 반드시 설치되어야 합니다;

  • 핍 다운로드:

    공식 웹사이트 주소: pypi.org/project/pip… ; 다운로드 후 압축을 풉니 다.

  • 명령줄 창을 열고 pip 압축 해제 후 디렉터리를 입력하고 코드를 실행합니다.

    python3 setup.py install
    to install, 설치 완료 후 시스템 환경 변수에 pip 추가

  • 명령줄 창이 열려 있는지 확인하고 pip list 또는 pip3 list를 입력합니다.여기에 이미지 설명 삽입

위의 내용은 Windows 시스템에만 해당되며 다른 시스템도 참조할 수 있습니다.

  • 필요한 라이브러리 설치: 명령줄 창을 열고 다음 코드를 입력하고 실행한 다음 Enter 키를 누릅니다.

    핍 설치 pyftpdlib

    세 번째 라이브러리가 성공적으로 설치되었다는 프롬프트를 기다립니다.

FTP 서비스 시작

pyftpdlib가 성공적으로 설치된 후 명령줄에 입력하십시오.

파이썬3 -m pyftpdlib -p 21

간단한 ftp 서비스를 시작할 수 있습니다.기본적으로 시작하기에 충분하지 않은 ftp 서비스는 암호가 없는 익명 사용자만 있습니다.사용자 및 권한을 추가하려면 코딩해야 합니다.

사용자 및 권한 인증으로 FTP 서버를 구현하는 코드

def ftpServer():
    import pyftpdlib
    # 该脚本程序是运行在windows上的ftp
    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler
    from pyftpdlib.servers import FTPServer
   
    #实例化虚拟用户
    authorizer = DummyAuthorizer()
    # 添加用户权限和路径
    authorizer.add_user('user', '123456', "d:/", perm="elradfmw")
    # 添加匿名用户,只需要路径
    authorizer.add_anonymous("d:/")
    #初始化ftp句柄
    handler = FTPHandler
    handler.authorizer = authorizer
    #添加被动端口范围
    handler.passive_ports = range(2000,20033)
    # 监听ip和端口
    server = FTPServer(('0.0.0.0', 21), handler)
    # 开始服务
    server.serve_forever()
复制代码

위의 코드를 실행하여 ftp 서비스를 시작하십시오.

FTP 클라이언트

위의 내용은 ftp 서비스를 로컬에서 시작합니다.테스트할 때 Windows 자체 ftp 클라이언트 연결 테스트를 사용할 수 있습니다.

명령줄 창을 열고 ftp 127.0.0.1 입력 사용자, 암호 테스트 결과를 입력합니다.

또한 python에는 ftp 클라이언트 라이브러리 ftplib가 내장되어 있습니다.

파이썬에서 FTP 클라이언트 사용하기

  1. 먼저 FTP 가져오기

ftplib에서 FTP 가져오기

  1. FTP 개체 인스턴스화

FTP = FTP()

  1. ftp에 연결하고 호스트 및 포트를 전달합니다.

ftp.connect(호스트, 포트)

  1. ftp에 로그인하고 로그인 방법을 사용하고 사용자 암호를 전달하십시오.

ftp.login(u,p)

  1. ftp에 성공적으로 로그인하고 파일을 업로드 및 다운로드하십시오.

Storbinary 방법을 사용하여 업로드:

 buf_size = 1024
        file_handler = open(local_file, 'rb')
        ftp.storbinary('STOR %s' % remote_file, file_handler, buf_size)
        file_handler.close()
复制代码

retrbinary 방법을 사용하여 다운로드

  try:
   buf_size = 1024
   file_handler = open(local_file, 'wb')
ftp.retrbinary('RETR %s' % remote_file, file_handler.write, buf_size)
 file_handler.close()
 except Exception as err:
	 return
复制代码

FTP 작업을 수행한 후 연결을 닫아야 합니다.

ftp.quit()
复制代码

이상으로 ftp의 일상적인 동작을 실현하였으며, ftp의 기타 관련 동작은 공식 문서를 참조할 수 있습니다.

추천

출처juejin.im/post/7132652956142272542