Python モジュール: os
概要
- ファイルシステムを利用するためのモジュール
構文
- 使うときは
import os
- 以下ではこの import は省略する
- ファイルは hoge.txt を扱うものとする
ファイルの存在
存在の確認
if os.path.exists("hoge.txt"): print("file exist") else: print("No such file")
ファイルであるかの確認
if os.path.isfile("hoge.txt"): print("hoge.txt is file") else: print("No such file")
ディレクトリであるかの確認
if os.path.isdir("hoge.txt"): print("hoge.txt is file") else: print("No such file")
リンクであるかの確認
if os.path.islink("hoge.txt"): print("hoge.txt is file") else: print("No such file")
パーミッション
- パーミッションを取得 (Linux のマスク形式で取得)
oct(os.stat("hoge.txt").st_mode)[-4:]
- 通常の 3 桁の前に
0
が付いた形式で返される (例: 0755, 0600, …)
- パーミッションの設定 (Linux のマスク形式で設定)
os.chmod("hoge.txt", 0o0755)
- 今回はパーミッションを 0755 に設定している
- 通常のパーミッションの 3 桁の前に
0
を付ける上、この数字は 8 進数なので、0o
を付ける -
0o
を付けないと Syntax error (SyntaxError: invalid token) になる
更新日時
os.stat
でos.stat_result
オブジェクトを取得し整形する。
os.stat(FILE).st_atime os.stat(FILE).st_mtime os.stat(FILE).st_ctime
FILE
: 更新日時を取得するファイル.st_atime
: 最終アクセス日時.st_mtime
: 最終内容更新日時.st_ctime
: メタデータ最終更新日時- 得られる日時は UNIX 時間 (1970 年 1 月 1 日 0 時 0 分 0 秒からの時間) なので、datetime モジュールを用いて変換する。
from datetime import datetime datetime.fromtimestamp(os.stat(FILE).st_atime).strftime("%Y/%m/%d %H:%M:%S") datetime.fromtimestamp(os.stat(FILE).st_mtime).strftime("%Y/%m/%d %H:%M:%S") datetime.fromtimestamp(os.stat(FILE).st_ctime).strftime("%Y/%m/%d %H:%M:%S")
環境変数取得
- シェル内部での環境変数を取得する方法
VARIABLE = os.environ[ENV_VAR]
VARIABLE
: シェル変数を受け取るための変数ENV_VAR
: 環境変数名 (文字列)- 例:
hoge = os.environ["PATH"]
- nautilus-scripts や nemo-scripts の変数も環境変数であるので、この方法で取得する