# 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)