import os43 OS module
43.1 File system
43.1.2 Files
43.1.2.1 List files
os.listdir()['fold2', 'f1.txt']
43.1.2.2 Rename
os.rename("f1.txt", "f2.txt")
os.listdir()['fold2', 'f2.txt']
os.rename("f2.txt", "f1.txt") # Clean-up43.1.2.3 File Stats
os.stat("f1.txt")os.stat_result(st_mode=33188, st_ino=5343176, st_dev=16777233, st_nlink=1, st_uid=501, st_gid=20, st_size=11, st_atime=1745973546, st_mtime=1711717319, st_ctime=1746977428)
Size
mod_time1 = os.stat("f1.txt").st_size
mod_time111
Modification Time
from datetime import datetime
print(datetime.fromtimestamp(mod_time1))1970-01-01 07:00:11
43.1.3 Make folders
43.1.3.1 One-level folder
os.mkdir("fold-d") # Makeos.rmdir("fold-d") # Remove43.1.3.2 Multi-level folders
os.makedirs("fold-d2/fold-dd2") # Makeos.removedirs("fold-d2/fold-dd2") # Remove43.1.4 Walk
os.walk() return tuples with 3 elements
for dirpath, dirnames, filenames in os.walk("."):
print("Current path: ", dirpath)
print("Directory: ", dirnames)
print("Files: ", filenames, "\n")Current path: .
Directory: ['fold2']
Files: ['f1.txt']
Current path: ./fold2
Directory: []
Files: ['f2.txt']
43.2 Environment var
print(os.environ.get('PATH'))/Users/kittipos/development/flutter/bin:/Users/kittipos/miniforge3/envs/ds-env/bin:/Users/kittipos/miniforge3/condabin:/usr/local/texlive/2024/bin/universal-darwin:/Users/kittipos/Library/Application Support/reflex/bun/bin:/Users/kittipos/.juliaup/bin:/Users/kittipos/.rubies/ruby-3.3.0/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Library/TeX/texbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/Applications/quarto/bin:/Users/kittipos/development/flutter/bin:/Users/kittipos/.local/bin:/Users/kittipos/.local/bin:/usr/local/texlive/2024/bin/universal-darwin:/Users/kittipos/Library/Application Support/reflex/bun/bin:/Users/kittipos/.juliaup/bin:/Users/kittipos/.rubies/ruby-3.3.0/bin:/Users/kittipos/development/flutter/bin:/Users/kittipos/miniforge3/bin:/Users/kittipos/miniforge3/condabin:/usr/local/texlive/2024/bin/universal-darwin:/Users/kittipos/Library/Application Support/reflex/bun/bin:/Users/kittipos/.juliaup/bin:/Users/kittipos/.rubies/ruby-3.3.0/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Library/TeX/texbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/Applications/quarto/bin:/Users/kittipos/development/flutter/bin:/Users/kittipos/.local/bin:/Users/kittipos/.local/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Library/TeX/texbin:/Applications/VMware Fusion.app/Contents/Public:/usr/local/go/bin:/Applications/quarto/bin:/Users/kittipos/development/flutter/bin:/Users/kittipos/miniforge3/envs/ds-env/bin:/Users/kittipos/miniforge3/condabin:/usr/local/texlive/2024/bin/universal-darwin:/Users/kittipos/Library/Application Support/reflex/bun/bin:/Users/kittipos/.juliaup/bin:/Users/kittipos/.rubies/ruby-3.3.0/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Users/kittipos/.local/bin:/Users/kittipos/miniforge3/bin:/Users/kittipos/.local/bin:/Users/kittipos/.local/bin
43.3 Os Path
Join
os.path.join("d", "f1.txt")'d/f1.txt'
Base
os.path.basename("/tmp/f1.txt")'f1.txt'
os.path.dirname("/tmp/f1.txt")'/tmp'
Split
os.path.split("/tmp/f1.txt")('/tmp', 'f1.txt')
os.path.splitext("/tmp/f1.txt")('/tmp/f1', '.txt')
Exist ?
os.path.exists("/tmp/f1.txt")False
Is dir, file ?
os.path.isdir("fold2")True
os.path.isfile("fold2")False