Pythonを使ったファイル検索を学ぶ

2023/3/4
執筆者:南波真之

※本記事は吉政創成株式会社「Python学習とキャリアアップ」より寄稿されたコラムとなります。

Pythonを使ったファイル検索を学ぶ

私は現在、Pythonについて勉強を進めています。というのも、AIやデータ分析、アプリケーション開発など様々な状況でPythonは活用されており、テクノロジー業界で活躍していくためには必要だと思っているからです。

と言っても、私はエンジニアではない文系の人間です。

解きながら学ぶ Pythonつみあげトレーニングブック」を使って、Pythonの一番基本的なところを学んでいます。そこで、自分で学習してきて感じたポイントや疑問、皆さんにシェアできることを書いていきます。

今回は、P.194〜P.197の部分になります。Pythonを使ってファイルを操作する方法について学習してみました。

Pythonのファイル操作

Pythonによるファイル操作を行うことで、ファイルからデータを読み込む、処理の結果をファイルに保存する、などのファイル読み書きに関することが実現できます。

これにより、例えばデータ分析の際に該当のデータを読み込む、分析結果を特定のファイルに記録していくといった動きを取ることができるようになります。

まずはファイル操作に関して必須の「パス」についてです。

パスの操作

パスは pathlibモジュールのPathクラスを使うことで操作できます。pathlibというのは、一連のファイル操作を1つのモジュールで行うことができるものです。

まずは、インストールから入ります。

from pathlib import Path

次に、テストでサンプルファイルとサンプルディレクトリを作成してパスを表示させてみます。

target_file = Path('sample.txt') target_dir = Path('test_dir') merge_path = target_dir / target_file print(f'相対パス: {merge_path}')

↓(出力結果)

相対パス: test_dir/sample.txt

ちなみに、絶対パスの場合はこのようになります。

abs_path = merge_path.absolute() print(f'絶対パス: {abs_path}')

↓(出力結果)

絶対パス: /Users/username/workspace/python-test/workspace/test_dir/sample.txt

出力結果は利用しているディレクトリやOSによって異なりますが私の環境ではこのように出力されました。現在のディレクトリ(カレントディレクトリ)を見たい場合はこのようになります。

cur_path = Path.cwd() print(f'カレントディレクトリ: {cur_path}')

↓(出力結果)

カレントディレクトリ: /Users/username/workspace/python-test/workspace

このpathlibを使うことで、例えばファイルの作成などもできるようになります。

target_file.touch()

このコードを実行すると、カレントディレクトリにtarget_fileの値であるファイルが作成されます。Linuxのtouchコマンドの動作が行えるようなイメージです。

複数ファイルの操作

次は、複数ファイルを操作する方法です。これはPathクラスのglobメソッドを利用することで実現できます。

検索対象フォルダのPathオブジェクトを作成するために Path("検索フォルダ") を記述し、Path.glob("検索結果") とすることで、条件に合ったファイルやフォルダを検索することができます。

# 検索対象フォルダはカレントディレクトリを指定 # 予めカレントディレクトリには 拡張子が.py のPythonファイルを複数用意 target_dir = Path() # for文で検索、 ワイルドカードの*を使い、任意の.pyファイルはすべて取得する for path in target_dir.glob('*.py'): print(path)

↓(出力結果)

test002.py
test003.py
test004.py
test001.py
test005.py

無事、指定したファイルをすべて取得できました。

ファイルの読み書き

ここまではパスやファイルの取得を行ってきましたが、ここからは実際にファイルへの読み書きを操作していきます。そのために、こちらの2つのメソッドを使用します。

  • read_text メソッド
  • write_text メソッド

読み込みの方をやってみます。指定のディレクトリ(今回はカレントディレクトリ)の中にある 拡張子が.pyのファイルを検索し、中身を読み込んで出力させるまでの操作です。

target_dir = Path() for path in target_dir.glob('*.py'):    txt = path.read_text(encoding='utf8′)    print(f'パス: {path}')    print(txt)

↓(出力結果)

パス: test002.py
# テストPythonファイル02
パス: test003.py
# テストPythonファイル03
パス: test004.py
# テストPythonファイル04
パス: test001.py
# テストPythonファイル01
x, y = 10, 100
print(x, y)
パス: test005.py
# テストPythonファイル05

一気にテキストで出力されるので分かりづらいところはありますが、しっかり読み込まれた内容で出力ができています。次は、書き込みを行います。指定のファイルを取り上げてテキストを書き込みます。

p = Path('test002.py') p.write_text('write_textで追加した文章です')

こちらも該当のファイルにテキストの書き込みができました。

このような作業を実際にファイルの操作を行う場合に実施します。

ファイル操作もしっかり習得

今回は、Pythonで実施するファイル操作公式ドキュメントについて学習してきました。該当ファイルの読み込み、検索、書き込み、といった動作はPythonを使った操作や活用を行う際にかなりの確率で発生すると思います。

手を動かしながら理解してPython学習を進めていきましょう。

インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。ご興味ある方は各講座のページを覗いてみてください。

Pythonが学べる講座

この記事の執筆者

南波真之

デジタル人材育成・助成金のお役立ち資料をダウンロード

デジタル人材育成や助成金活用のお役立ち資料などをまとめてダウンロードしていただけます。コンサルタントへの無料相談をご希望の方はこちらからお問い合わせください。

たとえばこんな相談ができます
  • DX人材の育成&事例紹介 リスキリングのロードマップ付き
  • デジタル人材育成に使える助成金制度
  • デジタルスキル標準 役割別おすすめ講座
資料ダウンロードはこちら
会社名必須
部署名必須
お名前必須
電話番号必須
メールアドレス必須

個人情報の利用目的についてご同意いただいた場合のみ、「同意して進む」を押してください。

このページの上へ