LoginSignup
12
10

More than 5 years have passed since last update.

PythonistaでクライアントFTPを最速で作ってみる

Last updated at Posted at 2016-07-25

Pythonista [iOS用 Python]

Pythonistaは、iOS端末を強力にしてくれるアプリです。
サーバー化はもちろん、その他にもいろいろ可能です。

さらに、Python2.7だけではなく、Python3.5での実行も可能です。
ただPythonコードが書けるだけではなく、オリジナルキーボードからターミナル(コンソール)、エディター、エクステンションなどあげるとキリがないくらい...アプリ紹介はこの辺で、切り上げて。

コード記載に移ります。

FTPクライアントコード

FTP.py
# coding=utf-8
#############################
# FileName: FTP.py
#.
#├── FTP.py
#└── var
#    └── tmp
#        └── test.html
#############################
## improt
from ftplib import FTP_TLS

## variable 変数
ftp_serveraddress = 'ftpアドレス'
ftp_user = 'アカウント名'
ftp_password = 'パスワード'
ftp_putdir = './var/tmp/'
ftp_putfile = 'test.html'

def ftpput(host, username, password, putdir, putfile):
    try:
        ftp_putdir = "/"
        _putfile = '%s%s' % (putdir, putfile)
        print _putfile
        print "FTP Start."
        # FTPの場合
        # _ftp = FTP(host) # FTP通信
        _ftps = FTP_TLS(host) # FTPS通信
        # デバックログの出力 (0:なし /1:コマンド /2:詳細)
        _ftps.set_debuglevel(1) # デバッグログがリアルタイムで確認できます。
        _ftps.login(username, password)
        print _ftps.getwelcome()
        print "Login OK! : %s" % (_ftps)
        _ftps.cwd(ftp_putdir)
        print "File Open."
        _file = open(_putfile, 'rb')
        command = 'STOR %s' % putfile # command操作が必要なため
        _ftps.storlines(command, _file)
        _file.close()
        print _ftps.quit()
        print "File UP Complete!"
    except:
        _ftps.quit()
        print "ERR!! ftpput_failed :" + _putfile

if __name__ == '__main__':
    ftpput(ftp_serveraddress, ftp_user, ftp_password, ftp_putdir, ftp_putfile)

これで、簡易なFTPクライアントができました。
file指定なところは、クールじゃないけど...。

今回挑戦したことは、FTP通信ではなく、FTPSでも通信が可能なところくらいです。
次回のアプリは、利用側が楽なようにUIなども考慮して作ってみたいと思います。

※注意※

同名ファイルをアップした場合は、上書きされます。

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10