os 模块示例

January 30, 2026

os 模块示例

本文档介绍 os 模块的路径与文件系统操作。示例来源:doc/pikapython.com/examples/os/os_path.pyos_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")

说明:joinsplitsplitextbasenamedirnameexistsisdirisfileisabsabspath 等行为与常见 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/chdirmkdirremove/rmdiropen(带 O_CREAT|O_RDWR)、read/write/lseek/closelistdir 的用法;设备上需存在相应目录。

注意事项

  • 设备文件系统(如 LittleFS)的路径、权限与桌面系统可能不同,请以设备文档为准。
  • pika_littlefs 若已挂载,通过 os 的 open/read/write/listdir 等即可访问该文件系统。

相关链接