3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SuiSuiAdvent Calendar 2023

Day 3

【os】業務効率化で使うosモジュールのあれこれ

Last updated at Posted at 2023-11-20

はじめに

表題の通り,(個人的に)よく使用する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)

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?