私はしばらくの間Pythonを学ぼうとしています。たまたま、 ここを指している Google 検索リンクから公式チュートリアルの第 6 章にたどり着きました。そのページから、関数はモジュールの心臓部であり、モジュールはコマンドラインから呼び出すことができることを知ったとき、私は完全に耳を傾けました. 両方を行う最初の試みは、openbook.py です。
import nltk, re, pprint
from __future__ import division
def openbook(book):
file = open(book)
raw = file.read()
tokens = nltk.wordpunct_tokenize(raw)
text = nltk.Text(tokens)
words = [w.lower() for w in text]
vocab = sorted(set(words))
return vocab
if __name__ == "__main__":
import sys
openbook(file(sys.argv[1]))
私が望むのは、この関数がモジュール openbook としてインポート可能であることと、openbook.py がコマンド ラインからファイルを取得し、それらすべてを実行できるようにすることです。
コマンド ラインから openbook.py を実行すると、次のようになります。
gemeni@a:~/Projects-FinnegansWake$ python openbook.py vicocyclometer
Traceback (most recent call last):
File "openbook.py", line 23, in <module>
openbook(file(sys.argv[1]))
File "openbook.py", line 5, in openbook
file = open(book)
モジュールとして使用しようとすると、次のようになります。
>>> import openbook
>>> openbook('vicocyclometer')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
では、これを修正するにはどうすればよいでしょうか。うまくいけば、悟りへの長く曲がりくねった道を進み続けることができますか?