Pythonのpycurlで帰ってきた結果を変数・ファイルに出力する

仕事でスクリプトを書いていたところ、pycurlで取得した値を変数やファイルに書き出す必要があったので、その備忘。
なお、Pythonのバージョンは2.7.5を用いている。

1.変数に書き出す

pycurlで取得した結果を変数に書き出す場合は、StringIOをインポートしpycurl.curl.WRITEFUNCTIONで書き出させる事で対応できる。
以下、サンプル。

#!/bin/python
# -*- coding: utf-8 -*-
import pycurl
from StringIO import StringIO

# 結果を格納する変数を宣言
buffer = StringIO()

# pycurlの処理を記述
c = pycurl.Curl()
c.setopt(c.URL, 'http://pycurl.io/')

# 返り値を変数に書き出すよう記述
c.setopt(c.WRITEFUNCTION, buffer.write)
c.perform()

print buffer.getvalue()

2.ファイルに書き出す

ファイルに書き出す場合は、pycurl.curl.WRITEDATAで書き出す。
以下、サンプル。

#!/bin/python
# -*- coding: utf-8 -*-
import pycurl

# 書き出すファイルを指定する
op_file = open('/tmp/pycurl_output','wb')

# pycurlの処理を記述
c = pycurl.Curl()
c.setopt(c.URL, 'http://pycurl.io/')

# 返り値をファイルに書き出すよう記述
c.setopt(c.WRITEDATA, op_file)
c.perform()