2008/03/17
[IronPython].Net Frameworkメソッド呼び出し urllibの代替
IronPythonもちょっとやろうと思いまして、荒井さんのIronPythonの世界などを読みつつ研究。 Python2.5ではファイルのダウンロードは組み込みライブラリのurllibを使うのが定番みたいです。
#!/usr/bin/python import urllib url = 'http://img.yahoo.co.jp/images/main7.gif' dest = 'D:\\script\\test.gif' file = urllib.urlopen(url).read() try : f=open(dest, "wb") f.write(file); f.close except : print "file error."
(20:35追記)このpyスクリプトの元ネタはhttp://www.geocities.jp/mirrorhenkan/python/getimg.py.txtです。作者さんに転載の了承を得ています。トップページhttp://www.geocities.jp/mirrorhenkan/からもいろいろ面白いコンテンツに飛べます。
IronPython 1.1.1ではurllibが含まれておらず、Python2.5.2に含まれているライブラリを使うのも互換性の問題で難しいようです。
import sys sys.path.append("C:\\Program Files\\Python25\\lib")
なんて頭につけてもエラーになります。
でもIronPythonは.NET Framework上で動作する言語なので、これらのライブラリに含まれるクラスが使えます。System.Net.WebClientを使いましょう。なお、System.Net名前空間に含まれるクラスはデフォルトでロードされているので、
import clr clr.AddReference("System.Net")
などとする必要はありません。これはPowerShellと同様です。
from System.Net import * url = 'http://img.yahoo.co.jp/images/main7.gif' dest = 'D:\\script\\test.gif' wc = WebClient() wc.DownloadFile(url, dest)
こんな感じ。最初、DownloadFileがスタティックメソッドと勘違いしていて、インスタンスを作る(wc = WebClient())のを忘れてうまく動かなかったですw
元記事:http://blogs.wankuma.com/mutaguchi/archive/2008/03/17/128160.aspxプライバシーポリシー