ノート
訪問者数 3910      最終更新 2010-01-11 (月) 11:17:30

Pythonを使ってみる

Pythonとは

Script言語。シンプル。習得の容易さを狙う。オブジェクト指向。
ライブラリが非常に充実⇒パーツ組立て式プログラミングも可能。

情報源

使ってみたい動機

言語習得

ライブラリurllibを使ってみる (2007/11/22)

ファイルを開いて読む

#!/usr/bin/env python

for line in open('text.txt', 'r'):
    print line

11.4 urllib -- URL による任意のリソースへのアクセス

11.5 urllib2 -- URL を開くための拡張可能なライブラリ、の、11.5.22 例

import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)
import urllib2
req = urllib2.Request(url='https://localhost/cgi-bin/test.cgi', \
    data='This data is passed to stdin of the CGI')
f = urllib2.urlopen(req)
print f.read()
Got Data: "This data is passed to stdin of the CGI"

これを使って、PubMedを検索アクセスしてみる。 山内のメモのうち検索の部分、 ◆その元ページ。  元ページに出てくるPerlのプログラムの例 fileeutils_example.pl(コメント付けておいた)

上記のプログラムを書き換えて、たとえば

import urllib

for line in  urllib.urlopen("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer&reldate=60&datetype=edat&retmax=10&usehistory=y"):
  print line

これで得られる検索結果(論文リスト)は、fileeutils_test0_result.txt となったので、これを解釈する必要あり。

Pythonでの再帰呼び出し(Recursion)〜別に目新しくないけれど備忘録

def f(i):
    if i==1:
      print "i = 1"
      return 1
    else:
      print "i = " + str(i)
      return i*f(i-1)

print f(5)

実行結果は

i = 5
i = 4
i = 3
i = 2
i = 1
120

「ループの代わりに使う」という話もあるようだけれど、どうなんだろうか?

検索で得られた結果(XML)を解釈して、Abstractをアクセスしよう (2007-11-23)

wxPython

Jythonを使わずに、PythonからJavaを呼び出す? (2008-11)

nltkはJavaを呼び出すための仕組(たぶんラッパー?)を持っているらしい (2009-12-17)

http://nltk.googlecode.com/svn/trunk/doc/api/nltk.internals-module.html の javaはそれらしいことを言っている。

実際に使ってみた ⇒

作ったクラスをファイブファイル化(モジュール化)する (2010-01-11)

http://otosata.jp/blog/?p=79を参照した

まずモジュール化して置きたいクラスを保存するが、置く場所(ディレクトリ)をたとえば/usr/local/python/modulesと決めたとする。

呼び出す側(そのモジュールを使う側)の中に、

mod_path = "/usr/local/python/modules"
import sys
sys.path.append(mod_path)

from モジュールファイル名 import モジュール内に書いたクラス名

を追加する。

モジュールの中身はクラスでなくても、メソッドだけでもいいみたいである。

例として、ファイルmytestmodule.py (拡張子pyを付けること) を以下のように準備する。

def fact(i):
    if i==1:
      print "i = 1"
      return 1
    else:
      print "i = " + str(i)
      return i*fact(i-1)

これを/usr/local/python/modules/mytestmodule.pyとして格納しておき、呼び出し側を(任意の場所で)次のように実行できる。

>>> mod_path = "/usr/local/python/modules"  <--- 以下3行は雛形どおり
>>> import sys
>>> sys.path.append(mod_path)
>>> from mytestmodule import fact           <--- モジュールファイル名mytestmodule.pyから拡張子.pyを除いたものを指定、importするのはこの場合メソッド名fact。
>>> fact(5)                                 <--- では実行してみる
i = 5
i = 4
i = 3
i = 2
i = 1
120

添付ファイル: fileeutils_example.pl 958件 [詳細] fileeSearch_020511.dtd 829件 [詳細] fileeutils_test0_result.txt 827件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-01-11 (月) 11:17:30 (2872d)