os Module Examples
This document introduces os module’s path and filesystem operations. , os_test1.py. pika_littlefs uses os and other interfaces, filesystem operations also within this module scope.
Module Introduction
os provides current directory, path joining, file existence, directory and file judgment, and low-level open/read/write, etc. Built-in example:
#!pika
import os
p = os.path
p.join('dir', 'file.txt')
p.exists('config')
#!pika
Example Code
Path Operations (os_path.py)
#!pika
import os
p = os.path
assert p.join('dir', 'file.txt') == 'dir/file.txt'
assert p.join('/home/user', 'dir', 'file.txt') == '/home/user/dir/file.txt'
assert p.split('dir/file.txt')[0] == 'dir'
assert p.split('dir/file.txt')[1] == 'file.txt'
assert p.splitext('file.txt')[0] == 'file'
assert p.splitext('file.txt')[1] == '.txt'
assert p.basename('dir/file.txt') == 'file.txt'
assert p.dirname('dir/file.txt') == 'dir'
assert p.exists('config/pika_config_void') == False
assert p.exists('/usr/bin') == True
assert p.isdir('config/pika_config_void.h') == False
assert p.isdir('config') == True
assert p.isfile('config') == False
assert p.isfile('config/pika_config_void.h') == True
assert p.isabs('dir/file.txt') == False
assert p.isabs('/home/user/file.txt') == True
assert p.abspath('/usr/bin') == "/usr/bin"
print("PASS")
#!pika
Note: join, split, splitext, basename, dirname, exists, isdir, isfile, isabs, abspath behavior consistent with common os.path; on device, paths and existence depend on actual filesystem (like LittleFS).
Directory and Low-level Files (os_test1.py)
#!pika
import os
origin = os.getcwd()
os.chdir("test/out")
os.getcwd()
try:
os.remove("_testdir/testfile")
os.rmdir("_testdir")
except:
pass
os.mkdir("_testdir")
os.chdir("_testdir")
f = os.open("testfile", os.O_CREAT | os.O_RDWR)
assert os.write(f, b"Hello World!") == 12
assert os.lseek(f, 0, 0) == 0
print(os.read(f, 100))
os.close(f)
os.chdir(".")
os.chdir(origin)
os.listdir('.')
print("PASS")
#!pika
Note: Usage of getcwd/chdir, mkdir, remove/rmdir, open (with O_CREAT|O_RDWR), read/write/lseek/close, listdir; corresponding directories need to exist on device.
Notes
- Device filesystem (like LittleFS) paths and permissions may differ from desktop systems, please follow device documentation.
- If pika_littlefs is mounted, can access that filesystem through os’s open/read/write/listdir etc.