Python スクリプトを改修する 1 (Twilio)

今日はまとまった時間があったので、この blog を書いたり Emacs の設定を調べたりしたほか、仕事で使っている Python スクリプトのリファクタリングも少し進めていました。

ひとつは Twilio で運用しているボイスメールサービスの音声ファイルをダウンロードするものです。会社では Python 2 で動かしているのですが、仕事で使うスクリプト(といっても 2、3 個ですが)をすべて 3 系に移行したいと考えているので少し確認が必要となっていました。

virtualenv で Python3.3 の仮想環境を作ってその中で、pip で Twilio のモジュールをインストールしてから動作確認です。結果は何の問題もなく動きました。一安心です。

$pip install twilio

Twilio のサイトにあるサンプルを参考にして大体下記のような感じで書いています。

import sys
import os
import datetime
import urllib.request # python 3.x
from twilio.rest import TwilioRestClient


account_sid = "YOUR_ACCOUNT_SID"
auth_token  = "YOUR_AUTH_TOKEN"
client = TwilioRestClient(account_sid, auth_token)

base_date = datetime.date(2014,2,20)
recordings = client.recordings.list(after=base_date)

argvs = sys.argv

if len(argvs) == 1:
    num = 1
else:
    num = int(argvs[1])

# Windows
# filepath = 'C:/Users/ryosuke/Downloads'
# Mac
filepath = '/Users/ryosuke/Downloads'

for rec in recordings[0:num]:
    url = rec.uri + '.mp3'
    filename = rec.sid[0:7] + '.mp3' # ファイル名を先頭 7 文字に短縮
    path = os.path.join(filepath, filename)
    urllib.request.urlretrieve(url, path)
    print(filename + ' has downloaded.')

print('All download finished!')

実際は会社ではバッチファイル(DOS)を組み合わせて所定のフォルダへのコピーなどなどもあわせて自動化しているのですが、Python でできそうなところはできるかぎり Python に寄せたほうがよいのではないかとも思えてきました。どうしましょうかね。