皆さん、こんにちは。
南波真之(なんばさねゆき)と申します。
私は現在、Pythonについて勉強を進めています。というのも、AIやデータ分析、アプリケーション開発など様々な状況でPythonは活用されており、テクノロジー業界で活躍していくためには必要だと思っているからです。
と言っても、私はエンジニアではない文系の人間です。
「解きながら学ぶ 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の基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」
Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」
※上記の講座は「解きながら学ぶ Pythonつみあげトレーニングブック」を基にした研修コースではありません。