指定したディレクトリ直下に配置されたファイルの中身を検索する関数 search を作成しましょう。
ディレクトリとはWindowsでいうフォルダに相当します。
- 対象ディレクトリと検索文字列を渡すと対象ディレクトリ内の検索文字列に該当したファイルの名称を表示します。
- 検索対象のディレクトリ内に更にディレクトリがある場合は考慮しなくて構いません。
- その中のファイルは検索しなくても問題ありません。
| パラメータ名 | 説明 |
|---|---|
| target_path | 対象ディレクトリのパス |
| keyword | 検索文字列 |
※ notes ディレクトリを表示する場合は以下のようになります。
search('notes/', '雪')- 該当したファイル名を1行に1つ表示する。
※ notes ディレクトリを表示した場合は以下のように表示されることを想定しています。
冬の庭.txt
雪の日.txt-
ディレクトリ内のファイル一覧を取得するときは
os.listdirという関数を使います。- 実行例>
os.listdir('notes')['丘.txt', '冬の庭.txt', '夏.txt', '夏の町.txt', '芥川龍之介', '雪の日.txt']が得られます。
- 実行例>
-
特定の文字列が別の文字列に含まれるかどうかを調べるときは
inを使います。- 実行例>
'b' in 'abc'Trueが得られます。
- 実行例>
'd' in 'abc'Falseが得られます。
- 実行例>
-
ファイルの中を読み込む場合は
open関数で開いたファイルをread関数で読み込みます。- この時
withというコンテキストを使うことが推奨されています。 - 実行例>
with open('search.py') as f: text = f.read()
- この時