FTP接続について

# coding: utf-8
from ftplib import FTP
import os

"""
FTP 接続に関するクラスだが普通に接続した方が良い。
使い方の参考まで
"""
class Ftp :
    # FTP接続ワーク
    ftp = None

    # コンストラクタ
    def __init__(self, host, user, passwd):
        # [注意] インスタンス生成前に文字コードを設定しないとダメ
        FTP.encoding = "utf-8"
        self.ftp = FTP(host)
        self.ftp.login(user, passwd)

    # デストラクタ
    def __del__(self):
        self.ftp.quit()

    # ディレクトリ移動
    def cwd(self, todir) :
        self.ftp.cwd(todir)

    # ファイル一覧
    def list(self) :
        return self.ftp.nlst(".")

    # アップロード(バイナリ)
    def upload(self, path) :
        filename = os.path.basename(path)
        with open(path, "rb") as f :
            self.ftp.stobinary(f"STOR {filename}", f)

    # ダウンロード(バイナリ)
    def download(self, path) :
        filename = os.path.basename(path)
        with open(path, "wb") as f :
            self.ftp.retrbinary(f"RETR {filename}", f.write)
タイトルとURLをコピーしました