はじめに
表題の通り,(個人的に)よく使用するosモジュールのコマンドを紹介しようと思います.備忘録.
超超初学者向けです.
動作環境情報
- Python 3.12.0
osモジュールを使用する際は下記のコマンドでimportしてください.
import os
紹介・使用例
ファイル / フォルダの存在確認
- os.path.isfile(path) -> True / False(戻り値)
引数で指定したファイルパスが存在するかどうかを判別.
- os.path.isdir(path) -> True / False(戻り値)
引数で指定したディレクトリ(フォルダ)パスが存在するかどうかを判別.
- os.path.exists(path) -> True / False(戻り値)
引数で指定したパスが存在するかどうかを判別.
1個目,2個目と3個目何が違うねん,って思ったそこのアナタ!
os.path.isfile(path)はファイルのパスのみ,os.path.isdir(path)はディレクトリ(フォルダ)のパスのみ,os.path.exists(path)はパスさえ存在していればTrueを返します.
状況に応じて使い分けるといいが,とりあえず3個目使っておけば問題無さそう.
sample.py
import os
dir_path = r"C:\Work\Qiita"
file_path = dir_name + r"\hojihoji.py"
if os.path.isfile(file_path):
print("ファイルあるよ!")
else:
print("ファイルないよお")
if os.path.isdir(dir_path):
print("フォルダあるよ!")
else:
print("フォルダないよおq_q")
if os.path.exists(file_path):
print("パスあるお^q^")
ディレクトリ(フォルダ)作成
- os.mkdir(path)
引数で指定したディレクトリ(ファイル)を作成.
既にフォルダが存在している場合エラーが出ます.上記のファイル / フォルダの存在確認するコードで存在確認してから使用しよう.
sample.py
import os
dir_path = r"C:\Work\Qiita"
# フォルダが無ければ新規作成
if not os.path.exists(dir_path):
os.mkdir(dir_path)
ファイルを削除
- os.remove(path)
引数で指定したファイルを削除.
ファイルが存在しない場合エラーが出ます.こちらも上記のファイル / フォルダの存在確認するコードで存在確認してから使用しよう.
sample.py
import os
file_path = r"C:\Work\Qiita\hojihoji.py"
# ファイルがあれば削除
if os.path.exists(file_path):
os.remove(file_path)
ファイルのタイムスタンプを取得
- os.path.getatime(path)
引数で指定したファイルの最終アクセス日時を取得.
- os.path.getmtime(path)
引数で指定したファイルの最終内容更新日時を取得.
- os.path.getctime(path)
引数で指定したファイルの作成日時を取得.
戻り値は全てUNIX時間で返されます.
sample.py
import os
file_path = r"C:\Work\Qiita\hojihoji.py"
print(os.path.getatime)
print(os.path.getmtime)
print(os.path.getctime)
#---------------------------------------#
1700463253.0382283 (getatime)
1700463221.9840796 (getmtime)
1700463221.8750641 (getctime)
「共有フォルダ内の特定のファイルが更新されていたら通知を出す」ような処理が可能です.
ファイルやディレクトリの一覧を取得
- os.walk(path)
引数で指定したディレクトリのファイルを走査.
以下の構造でWorkディレクトリを走査します.
Work
├ Qiita1
│├test1.txt
│└test2.txt
└ Qiita2
└test3.txt
sample.py
import os
dir_path = r"C:\Work"
for folder, subfolder, file in os.walk(dir_path):
print("*****")
print(folder)
print(subfolder)
print(file)
#---------------------------------------#
*****
C:\work
['Qiita1', 'Qiita2']
[]
*****
C:\work\Qiita1
[]
['test1.txt','test2.txt']
*****
C:\work\Qiita2
[]
['test3.txt']
「特定のフォルダ下の.〇〇ファイルに対して××という処理を行う」というような場合に役立ちます.
おわりに
今回はほんの一部しか紹介できていません.osモジュールは他にもできることが多いのでぜひ調べてみてください!
osモジュール詳細(https://docs.python.org/ja/3/library/os.html)