Python ftplibでファイルをFTP GETする

最近お目にかからなくなってきたFTPサーバから、データをGETするスクリプトを組んでたのでメモ。
ftplibを使って、指定ディレクトリからデータをGETする簡単なサンプルコードです。
gzファイル取りたかったのでバイナリモードにしてますが、ASCIIモードの場合はretrlines()で。
下記サンプルコードではファイル名固定ですが、「あるディレクトリ配下のすべてのファイルをGET」とかする場合は、nlst()が便利だと思う。

ftp_srv.cwd(archive_path)
for getfile in ftp_srv.nlst():
    ...
    ...

NLSTの結果をリストオブジェクトで返してくれるので操作しやすい。

# coding=utf-8
import os
import ftplib
from ftplib import FTP
if __name__ == '__main__':
    archive_path = 'archive/20130619'
    filename = 'service.log.gz'
    try:
        ftp_srv = FTP('FTPサーバ', 'ユーザー名', 'パスワード') #FTPサーバへ接続
        ftp_srv.cwd(archive_path) # カレントディレクトリの指定(archive_pathがカレントになる)
        file_path = '/'.join([archive_path, filename])
        if not os.path.isfile(file_path):
            # バイナリモードでファイルを開く
            with open(file_path, 'wb') as f:
                ftp_srv.retrbinary('RETR '+filename, f.write) # バイナリモードでファイルを受信
        ftp_srv.quit()
    except ftplib.all_errors, e:
        print '%s' % e

pythonからだと意外とFTPは扱いづらいというか、プリミティブな感じがしました。
SCPとかSFTPならparamikoやFabric使えば良いっぽいし、ftplibは今後使うことあるのかどうか・・・。

オートチャージのスターバックスカードでも1杯無料チケット(e-Ticket)が貰えた!

先日スタバカード5000円以上チャージして、無料チケットをもらったけど、オートチャージ機能を設定してるマイスタバカードでも1杯無料チケットがもらえました!
starbucks-eticket
スターバックス ロゴマグ
オンラインチャージの場合、メールが届いて、リンク先に飛ぶとこんなバーコードが表示されます。これをお店で提示すればオッケーみたい。
プリントアウトするもよし、スマホに保存してそのまま持っていくのもよし。
どうやら店舗でのチャージと違い、累計5000円毎に貰えるみたい。自分は3000円づつのチャージで、今月既に2回チャージしてるから6000円分チャージしてますねー。
このキャンペーンはあと1ヶ月以上あるので、あと何回かは貰えるかなと思ってます。
ちなみに有効期間は貰った当日から8月末までみたい。
しかもドリンクもサイズも好きなの選んで良いし、カスタマイズも1000円までならオッケーとは太っ腹ですね。

▼利用期間
2013年6月11日(火)~8月31日(土)
▼対象店舗
日本国内のスターバックス店舗
※玉川高島屋S・C店(ホールビーンストア)を除く
▼チケット内容
お好きなドリンク1杯を無料でお楽しみいただけます。
※お好きなドリンクとサイズをお選びいただけます。
※カスタマイズは何点でもご利用いただけますが、カスタマイズ後のドリンク総額が1,000円を超える場合は別途料金を承ります。
※ポットサービスその他一部対象外となる商品があります。

スターバックスカードに5000円分チャージごとに無料チケットが貰えるキャンペーン

1日に1回は行くスターバックスで、プレゼント用にカードにチャージしたら、ドリンクが1杯無料で飲めるチケットを貰いました。
対象期間: 2013年6月5日~7月16日
5000円毎に1枚で、オンラインチャージでも貰えるそうです。(オンラインチャージの場合はe-Ticketです)
20130608-205954.jpg
自分はオートチャージにしてるけど、オートチャージが対象なのかは書いて無いですね、ぐぬぬ・・・。
月に1万円以上はスタバで使ってるので、これは欲しい!
詳しくはこちらのページで確認を。