os Module Examples


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.