import os
19 OS module
19.1 File system
19.1.2 Files
19.1.2.1 List files
os.listdir()
['fold2', 'f1.txt']
19.1.2.2 Rename
"f1.txt", "f2.txt")
os.rename( os.listdir()
['fold2', 'f2.txt']
"f2.txt", "f1.txt") # Clean-up os.rename(
19.1.2.3 File Stats
"f1.txt") os.stat(
os.stat_result(st_mode=33188, st_ino=2332655, st_dev=16777221, st_nlink=1, st_uid=501, st_gid=20, st_size=11, st_atime=1707292670, st_mtime=1707291869, st_ctime=1707294919)
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
19.1.3 Make folders
19.1.3.1 One-level folder
"fold-d") # Make os.mkdir(
"fold-d") # Remove os.rmdir(
19.1.3.2 Multi-level folders
"fold-d2/fold-dd2") # Make os.makedirs(
"fold-d2/fold-dd2") # Remove os.removedirs(
19.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']
19.2 Environment var
print(os.environ.get('PATH'))
/Users/kittipos/.pyenv/shims:/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:/usr/local/go/bin:/Applications/quarto/bin:/usr/local/opt/ruby/bin:/Users/kittipos/.pyenv/shims:/Users/kittipos/.gem/bin:/Users/kittipos/development/flutter/bin:/Users/kittipos/.rvm/bin:/Users/kittipos/Applications/quarto/bin:/Library/TeX/texbin:/usr/texbin:/Applications/RStudio.app/Contents/Resources/app/bin/postback
19.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