2012-04-06 8 views
1

私は、特定のディレクトリ内の異なる種類のソースファイルでコメントを識別する必要があります。 (例:java、XML、JavaScript、bash)。私はこれをPythonを使って(Pythonを学ぶ試みとして)行うことにしました。質問は私が持っている異なるソースファイルのコメントを特定するためにPythonについて知っておくべきことはありますか?

1)これを行うには、私は何を知るべきですか? (私は正規表現が便利だと思っていますが、他のモジュールや便利なモジュールがありますか?)

2)Pythonはこのようなタスクに適していますか?他の言語でこれを簡単に行うことはできますか?

+1

Pythonはこのようなタスクを迅速に実行するための優れた言語です。ファイルとディレクトリを操作するには、osモジュールを参照してください。http://docs.python.org/library/os.html – arboc7

答えて

5

あなたの問題は、プログラミング言語の解析に関連しているようです。正規表現では、ほとんどの言語でコメントを見つけることができると思います。良いことは、Perl、Python、Ruby、AWK、Sedなどのほとんどの正規表現があることです。

しかし、他の答えで言えば、構文解析エンジンを使用する方がよいでしょう。そして、もし完全な吹き抜けのパーサーでなければ、レクサーです。 Pythonの場合、Pygmentsライブラリをチェックしてください。既に実装されている多くの言語用のレクサーがあります。

+0

+1。それを知らなかったが、確かにこの特定のタスクのための理想的なソリューションのように見える。 – marue

2

1)あなたが知る必要があるのは正規表現ではなく解析です。さらに、osモジュールとpythonsファイルの処理に関する知識が必要です。ここではDiveIntoPython(http://www.diveintopython.net/)が良いスタートです。私は第6章をお勧めしたいと思います。(そしておそらく1-5も):)

2)Pythonは良いスタートです。別の言葉では、それをもっと簡単にするのではなく、違う言語があります。 Pythonはすでに始まったばかりです。

コメント欄と改行を検索するのと同じくらい簡単なので、あなたの仕事にregexを使わないことをお勧めします。

2

pyparsingモジュールは、いくつかのスタイルのコメントを直接サポートしています。あなたの目標は、単に仕事を取得している場合は、コメントパーサはあなたが一緒に投げるだろう何よりも堅牢である可能性が高いので、例えば、

from pyparsing import javaStyleComment 
for match in javaStyleComment.scanString(text): 
    <do stuff> 

だから、これを調べます。あなた自身でそれを学ぶことにもっと興味があるなら、これはあなたの好みのためにあまりにも多くの加工食品かもしれません。

関連する問題