仕事でスクリプトを書いていたところ、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()