Emacsのdabbrevで、Pythonのモジュール名と関数などを動的略語展開をするための下準備として、Webから読み込んで単語をテキストファイルに書き出すスクリプトを書いてみた。
python-mode(python.el)のM-tabでの補完機能は望んだものが出てこなかったりするから、dabbrevで補うと便利かも。
dabbrevの詳しい説明は『Meadow/Emacs memo: テキストの補完入力 ― abbrev ,定型句』さんを参照。
#!/usr/bin/env python # *-# -*- coding: utf-8 -*- import re import urllib def module_index(): url = 'http://docs.python.org/lib/modindex.html' s = urllib.urlopen(url).read() #get module name r = re.compile('<tt class="module">(?P<module_name>.*?)</tt>') module_name = r.findall(s) module_name.sort() return module_name def function_index(module_list): function_name = [] error_module = [] for module in module_list: try: m = __import__(module) function_name += dir(m) except: error_module.append(module) #function_name = list(set(function_name)) #function_name.sort() #print func_name_set #print "error------->",error_module return function_name def file_save_cwd(data): import os,os.path cwd_path = os.getcwd() + '/' file_path = os.path.join(cwd_path ,"Module_Index_Text.txt") file = open(file_path,"w") file.write(data) file.close print "save to: %s" % file_path if __name__ == '__main__': m = module_index() mf = m + function_index(m) mf_set_list = list(set(mf)) mf_set_list.sort() str = "\n".join(mf_set_list) #print str file_save_cwd(str)
エラーで読み込めないのは省いた。
あるものすべて取得しようとするので、使わない単語は削った方がいいかも。
重複しないようにしたけど単語5,000超えてるし(´・ω・`)