import os
42 OS module
42.1 File system
42.1.2 Files
42.1.2.1 List files
os.listdir()
['fold2', 'f1.txt']
42.1.2.2 Rename
"f1.txt", "f2.txt")
os.rename( os.listdir()
['fold2', 'f2.txt']
"f2.txt", "f1.txt") # Clean-up os.rename(
42.1.2.3 File Stats
"f1.txt") os.stat(
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
= os.stat("f1.txt").st_size
mod_time1 mod_time1
11
Modification Time
from datetime import datetime
print(datetime.fromtimestamp(mod_time1))
1970-01-01 07:00:11
42.1.3 Make folders
42.1.3.1 One-level folder
"fold-d") # Make os.mkdir(
"fold-d") # Remove os.rmdir(
42.1.3.2 Multi-level folders
"fold-d2/fold-dd2") # Make os.makedirs(
"fold-d2/fold-dd2") # Remove os.removedirs(
42.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']
42.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
42.3 Os Path
Join
"d", "f1.txt") os.path.join(
'd/f1.txt'
Base
"/tmp/f1.txt") os.path.basename(
'f1.txt'
"/tmp/f1.txt") os.path.dirname(
'/tmp'
Split
"/tmp/f1.txt") os.path.split(
('/tmp', 'f1.txt')
"/tmp/f1.txt") os.path.splitext(
('/tmp/f1', '.txt')
Exist ?
"/tmp/f1.txt") os.path.exists(
False
Is dir, file ?
"fold2") os.path.isdir(
True
"fold2") os.path.isfile(
False