Back to tech

Pythonで簡単にFTPいじれるモジュール作ってみた

2 min read
Table of Contents

一発でFTPサーバーにアップロードとダウンロードをしたく、いちいちプログラムを記述するのがめんどいためモジュール化してみた

プログラム

# -*- coding: utf-8 -*-
#!/usr/bin/env python
from ftplib import FTP

def connect_ftp(Host_address, User_id, Password, Port, Timeout):
    return FTP(Host_address, User_id, Password, Port, Timeout)

#ダウンロード
def retr(Host_address, User_id, Password, Port, Timeout, dwnfile, ftpfile):
    ftp = connect_ftp(Host_address, User_id, Password, Port, Timeout)
    f = open(dwnfile, 'wb')
    ftp.retrbinary("RETR " + ftpfile, f.write)
    f.close()
    ftp.close()

#アップロード
def stor(Host_address, User_id, Password, Port, Timeout, upfile, ftpfile):
    ftp = connect_ftp(Host_address, User_id, Password, Port, Timeout)
    f = open(upfile, 'rb')
    ftp.storlines("STOR " + ftpfile, f)
    f.close()
    ftp.close()


if __name__ == '__main__':
    date1_file = 'hogehoge'
    date2_file = 'samplesample'

    Host_address = '192.168.0.0'#ホスト名(アドレス)
    User_id = 'hogehoge'#ユーザー名
    Password = 'hogehogepass'#パスワード
    Port = 21 #ポート番号 初期値は21
    Timeout = 500 #タイムアウト(秒)

    #retr(Host_address, User_id, Password, Port, Timeout, date1_file, date2_file)
    #stor(Host_address, User_id, Password, Port, Timeout, date1_file, date2_file)

使い方

※ここでは上記のファイルをFTPService.pyとしています!

FTPサーバーからダウンロードする場合

FTPService.retr("FTPアドレス",  "ユーザー名",  "パスワード", "ポート番号", "タイムアウト", "保存するファイル名", "FTPにあるファイル名")

FTPサーバーにアップロードする場合

FTPService.stor("FTPアドレス",  "ユーザー名",  "パスワード", "ポート番号", "タイムアウト", "アップロードするファイル名", "FTPに保存するファイル名")

これでこのプログラムをインポートすれば簡単にFTPサーバにアクセスできるようになりました