我一直在尝试学习 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
那么,我能做些什么来解决这个问题,并希望继续沿着漫长而曲折的道路走向启蒙呢?