Pythonのファイル操作では欠かせないosモジュールの関数をまとめてみました。便利な関数がたくさんあるので知っておくと便利ですね。
osモジュールを使ってファイル操作をするなら、ファイルパスやディレクトリの知識は必須です。これらの内容は以下の記事にまとめています。
今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]
パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]
osモジュール
osモジュールとは?
Pythonをインストールしたときについてくる標準ライブラリに入っているモジュールです。「import os」と書くだけで使えます。
以下に示すコードでは「import os」を省略しているので注意してください。
- osモジュールは「os.py」で保存されています。
- 場所は「python38.LIb」です。
- 関数の定義を詳しく確認したいときはモジュールの中をのぞいてみてください。(ただし自己責任)
- 注意:モジュールのコードを変更すると使えなくなるので変更禁止です。
os.getcwd関数:カレントディレクトリ取得
- カレントディレクトリの絶対パスを返す
- 引数なしでOK
1 2 |
>>> os.getcwd() 'C:\\Program Files\\Python38' |
os.listdir関数:フォルダの中身をリスト化
- フォルダの中身のリストを返す
- 引数にフォルダのパスを渡す
私のPCにある「blogフォルダ」の中身をリスト化すると以下のようになります。
1 2 |
>>> os.listdir(r"C:\blog") ['folder1', 'folder2', 'sample.txt', 'スケジュール.xlsx'] |
os.rename関数:名前の変更
- フォルダやファイルの名前を変更
- 戻り値はなし
- 第1引数に変更前のパス、第2引数に変更後のパスをわたす
1 2 3 |
>>> old = r"C:\blog\sample.txt" >>> new = r"C:\blog\sample_after.txt" >>> os.rename(old, new) |
このように書いて実行すると名前の変更ができます。何も表示されませんが正常に変更できています。
os.listdir関数とos.rename関数は以下の記事でエラーになりやすい箇所もあわせて詳しく解説しています。
Pythonを使うとたとえ数百個のファイルがあったとしても一瞬で変更できてしまいます。そのときにつかえるosモジュールの使い方を紹介します。 この内容を理解するにあたり、ルートディレクトリ、カレントディレクトリ、相対パス、絶対パスの[…]
os.makedirs関数:フォルダの新規作成
- 戻り値はなし
- 引数に新規作成したいフォルダのパスを渡す
1 |
>>> os.makedirs(r"C:\blog\folder3") |
これで「blogフォルダ」の中に新しく「filder3フォルダ」が作られます。
os.remove関数:削除
- ファイルの削除
- フォルダは削除できない
- 引数にファイルパスを渡す
1 |
>>> os.remove(r"C:\blog\sample1.txt") |
os.rmdir関数:空のフォルダ削除
空のフォルダを削除
1 |
>>> os.rmdir(r"C:\blog\folder2") |
os.makedirs、os.remove、os.rmdirは以下の記事でもまとめています。エラーになるポイントも紹介中!
Pythonでファイルやフォルダを削除・作成したり、移動・コピー・実行したりする方法を紹介しています。 今回紹介する方法はosモジュールとshutilモジュールを使います。Pythonをインストールすれば使えるので改めてインストール[…]
os.walk関数:ディレクトリツリー取得
- フォルダ内のフォルダやファイルをすべて取り出す
- for文でループできる
1 2 3 4 5 6 7 8 |
for i in os.walk(r"C:\blog"): print(i) #出力結果 ('C:\\blog', ['folder1', 'folder2'], ['sample.txt', 'スケジュール.xlsx']) ('C:\\blog\\folder1', [], ['step1.txt', 'step2.txt', 'step3.txt']) ('C:\\blog\\folder2', ['folder3'], ['time.txt']) ('C:\\blog\\folder2\\folder3', [], ['test.txt']) |
ループ処理でこのように取り出すことができますが、そのときの変数の数に注意が必要です。この関数に関しては以下の記事で詳しくまとめいます。
Pythonでディレクトリ内に含まれているすべてのディレクトリやファイルを取得したいときに使えるのがos.walk関数です。 この関数を使うとすべてのファイルやディレクトリをforループを使って取り出すことができます。 フォル[…]
os.pathモジュール
os.pathモジュールとは?
os.pathモジュールも「import os」と書くだけで使うことができます。
- os.pathモジュールのコードは「posixpath.py」と「ntpath.py」に保存されているます。
- これらのファイルの冒頭を読むと『「os.path」として使える』と書いています。
os.path.join関数
カンマ区切りのディレクトリをつなげる
1 2 |
>>> os.path.join('C:', 'Users', 'Desktop', 'ブログ', 'スケジュール.xlsx') C:Users\Desktop\ブログ\スケジュール.xlsx |
Pythonでのファイル操作方法を紹介します。この方法を使うとたくさんのファイルを一度に読み込んだり、書き込んだりすることが可能です。 このファイル操作を理解するためにはファイルパスやカレントディレクトリ、ルートディレクトリの知識が[…]
os.path.abspath関数:パスを変換
相対パスを絶対パスに変換
1 2 |
>>> os.path.abspath('..\\') 'C:\\Programs\\Python' |
os.path.relpath関数:相対パスを取得
第2引数から第1引数への相対パスを返す
1 2 |
>>> os.path.relpath('C:\\Programs\\Python', "C:\\Documents\\Zoom") '..\\..\\Programs\\Python' |
os.path.isabs関数:パスの判定
引数のパスが絶対パスならTrue、相対ぱすならFlase
1 2 3 4 |
>>> os.path.isabs('.\\Doc') False >>> os.path.isabs('C:\\Programs\\Python\\Python38') True |
os.path.abspath、os.path.relpath、os.path.isabsの詳しい解説は以下の記事にまとめています。引数の数によって戻り値が異なる場合があるので細かいところまで確認したい方はどうぞ↓
Pythonでファイル操作をするときに重要なことがパスの指定方法です。絶対パスと相対パスでは大きな違いあります。また、ファイルが存在するか否かも重要ですね。 今回は、フォルダが存在するかどうかと、絶対パスと相対パスの判定方法、変換方[…]
os.path.exists関数:パスの存在確認
存在するならTrue、しないならFalse
1 2 3 4 5 |
>>> os.path.exists(r"C:\blog\sample.txt") True >>> os.path.exists(r"C:\blog\post") False |
os.path.isfile関数:ファイルか確認
ファイルパスならTrue、それ以外ならFalse
1 2 3 4 5 |
>>> os.path.isdir(r"C:\blog") False >>> os.path.isdir(r"C:\blog\sample.txt") True |
os.path.isdir関数:フォルダか確認
フォルダパスならTrue、それ以外ならFalse
1 2 3 4 5 |
>>> os.path.isdir(r"C:\blog") True >>> os.path.isdir(r"C:\blog\sample.txt") False |
os.path.exists、os.path.isfile、os.path.isdirの解説は以下の記事になります。ほぼエラーになることがないので扱いやすい関数です。
Pythonでファイル操作をするにはそのファイルが存在していないことにはできません。フォルダに関しても同じことが言えます。 そこで、今回はファイルやフォルダの存在を確かめることができる関数を紹介します。以下の3つの関数の戻り値はbo[…]
まとめ
今回はosモジュールの関数をまとめていきました。このほかにもたくさんの関数があるので随時追加していきたいと思います。
関連記事ではエラーになるポイントや引数の数に関しても詳しく書いています。参考になれば幸いです。
- ファイル操作で使うosモジュールの関数16個まとめ
- ファイルを読み込む手順【open・close・path・withの使い方】
- ファイルに書き込み・上書き・読み込みする5つの方法【open関数のモード選択】
- フォルダ内のファイル名を取得・名前を変更する方法
- ファイル・フォルダを削除・作成する方法
- 絶対パスと相対パスの判定・変換する方法
- ファイル・フォルダを移動・コピーする方法【shutilモジュールの使い方】
- ファイルを読み込む5通りの方法【リスト・for文・一行ずつ】
- ディレクトリツリーを取得してファイル一覧を表示する方法【os.walkの使い方】
- ファイル・フォルダがあるかどうかの存在確認と判定する方法
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]