|
1.11.2 発展:ファイルの検索とこれに関連した操作手順
ファイル名をどう指定するかそしてまた,ファイルがどう構成されるか等の詳細は,コンピュータシステムによって違う.それでも,Mathematicaの提供するファイル操作機能を使えば,一様な手順でファイルの検索やその他のファイル操作を行うことができる.
Mathematicaのファイル機能はひとつの前提に基づいてる.つまり,システムの管理するファイルはすべてディレクトリ構造の階層組織下にあるものとされる.また,常時,何かしらの現行ディレクトリが存在するものとされる.現行ディレクトリに保存されているファイルは,ファイル名だけで参照することができる.

ファイルの検索と関連操作
現行ディレクトリを調べる.ディレクトリ名の書式はオペレーティングシステムによって違う.
In[1]:= Directory[ ]
Out[1]= /users/sw
現行ディレクトリを変更する.
In[2]:= SetDirectory["Examples"]
Out[2]= /users/sw/Examples
ファイル名がTest*.mに合致する,現行ディレクトリのファイルを列挙する.
In[3]:= FileNames["Test*.m"]
Out[3]= {Test1.m, Test2.m, TestFinal.m}
普通,現行の作業ディレクトリに保存されるようにファイルを作成するが,読み込もうとするファイルによっては,他のディレクトリにあるかもしれない.この場合,Mathematicaでファイルの検索を行うと,自動的に(検索パス変数$Pathで特定されている)ディレクトリのリストを検索し,指定された名前のファイルを見つけようとする.
Mathematicaでファイルを扱う際には,ファイルやディレクトリの名前がコンピュータシステム間によって異なるということが問題になる.このことは例えば,システムによって標準パッケージの名前が全く異なることがありうるということである.しかし,一連の規約に従って標準パッケージをシステムと無関係に同一のコマンドで読み込むことが可能である.すなわち具体的には,各パッケージがname`name`の形のいわゆるMathematicaコンテキストを定義する.各システムでは,すべてのファイルはそれらを定義したコンテキストとやりとりする中で名付けられている.そしてコマンド<<name`name`を用いると,Mathematicaではコンテキスト名は使用しているコンピュータシステムに適した名前に自動的に変換される.

ファイル内容のテキスト検索
ファイルBookIndexに対して,単語diagramsを含むすべての行を検索させる.
In[4]:= FindList["BookIndex", "diagrams"]
Out[4]= 
|