January 30, 2026
os 模块示例
本文档介绍 os 模块的路径与文件系统操作。示例来源:doc/pikapython.com/examples/os/os_path.py、os_test1.py。pika_littlefs 通过 os 等接口使用,文件系统操作也在本模块范围内。
模块简介
os 提供当前目录、路径拼接、文件存在性、目录与文件判断及底层 open/read/write 等。内嵌示例:
import os
p = os.path
p.join('dir', 'file.txt')
p.exists('config')
示例代码
路径操作(os_path.py)
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")
说明:join、split、splitext、basename、dirname、exists、isdir、isfile、isabs、abspath 等行为与常见 os.path 一致;设备上路径与存在性依赖实际文件系统(如 LittleFS)。
目录与底层文件(os_test1.py)
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")
说明:getcwd/chdir、mkdir、remove/rmdir、open(带 O_CREAT|O_RDWR)、read/write/lseek/close、listdir 的用法;设备上需存在相应目录。
注意事项
- 设备文件系统(如 LittleFS)的路径、权限与桌面系统可能不同,请以设备文档为准。
- pika_littlefs 若已挂载,通过 os 的 open/read/write/listdir 等即可访问该文件系统。