os --- layanan "sistem operasi" dasar¶
Modul os berisi fungsi-fungsi untuk akses dan pemasangan filesystem, pengalihan dan duplikasi terminal, serta fungsi uname dan urandom.
Fungsi umum¶
- os.uname() Tuple[str, str, str, str, str]¶
Mengembalikan tuple (mungkin named tuple) yang berisi informasi tentang mesin dasar dan/atau sistem operasinya. Tuple memiliki lima bidang dalam urutan berikut, masing-masing berupa string:
sysname-- Nama sistem dasarnodename-- Nama jaringan (dapat sama dengansysname)release-- Versi sistem dasarversion-- Versi MicroPython dan tanggal buildmachine-- Pengenal untuk perangkat keras dasar (misalnya board, CPU)
- os.urandom(n: int) bytes¶
Mengembalikan objek bytes dengan n byte acak. Sumbernya secara kriptografis sesuai pada setiap kamera yang didukung, meskipun implementasinya bervariasi menurut port:
Kamera STM32 (M4, M7, H7, H7+, PT, N6) menggunakan periferal RNG perangkat keras STM32.
Kamera i.MX RT1062 (RT1060) menggunakan TRNG perangkat keras chip.
Kamera Alif Ensemble (AE3) menggunakan layanan acak perangkat keras Secure Enclave.
Arduino Nano 33 BLE Sense menggunakan periferal RNG perangkat keras nRF52.
Arduino Nano RP2040 Connect tidak memiliki TRNG perangkat keras; PRNG pico-sdk di-seed dan terus-menerus dicampur ulang dengan sumber entropi on-chip RP2040.
Akses filesystem¶
- os.ilistdir(dir: str | None = None) Iterator[Tuple]¶
Fungsi ini mengembalikan iterator yang kemudian menghasilkan tuple yang sesuai dengan entri dalam direktori yang tercantum. Tanpa argumen, ia mencantumkan direktori saat ini, jika tidak, ia mencantumkan direktori yang diberikan oleh dir.
Tuple memiliki bentuk (name, type, inode[, size]):
name adalah string (atau bytes jika dir adalah objek bytes) dan merupakan nama entri;
type adalah bilangan bulat yang menentukan jenis entri, dengan 0x4000 untuk direktori dan 0x8000 untuk file biasa;
inode adalah bilangan bulat yang sesuai dengan inode file, dan mungkin 0 untuk filesystem yang tidak memiliki konsep tersebut.
size adalah bilangan bulat yang mungkin disertakan tergantung pada jenis filesystem. Untuk entri file, size mewakili ukuran file atau -1 jika tidak diketahui. Maknanya saat ini tidak ditentukan untuk entri direktori.
- os.listdir(dir: str | None = None) List[str]¶
Tanpa argumen, mencantumkan direktori saat ini. Jika tidak, mencantumkan direktori yang diberikan.
- os.statvfs(path: str) Tuple¶
Mendapatkan status filesystem.
Mengembalikan tuple dengan informasi filesystem dalam urutan berikut:
f_bsize-- Ukuran blok sistem filef_frsize-- Ukuran fragmenf_blocks-- Ukuran fs dalam satuan f_frsizef_bfree-- Jumlah blok bebasf_bavail-- Jumlah blok bebas untuk pengguna tanpa hak istimewaf_files-- Jumlah inodef_ffree-- Jumlah inode bebasf_favail-- Jumlah inode bebas untuk pengguna tanpa hak istimewaf_flag-- Flag mountf_namemax-- Panjang nama file maksimum
Parameter yang terkait dengan inode:
f_files,f_ffree,f_favaildan parameterf_flagmungkin mengembalikan0karena mungkin tidak tersedia dalam implementasi spesifik port.
Pengalihan dan duplikasi terminal¶
- os.dupterm(stream_object: Any, index: int = 0, /) Any¶
Menduplikasi atau mengalihkan terminal MicroPython (REPL) pada objek seperti stream yang diberikan. Argumen stream_object harus berupa objek stream native, atau turunan dari
io.IOBasedan mengimplementasikan metodereadinto()danwrite(). Stream harus dalam mode non-blocking danreadinto()harus mengembalikanNonejika tidak ada data yang tersedia untuk dibaca.Setelah memanggil fungsi ini, semua output terminal diulangi pada stream ini, dan input yang tersedia pada stream diteruskan ke input terminal.
Parameter index harus berupa bilangan bulat non-negatif dan menentukan slot duplikasi mana yang ditetapkan. Port tertentu dapat mengimplementasikan lebih dari satu slot (slot 0 akan selalu tersedia) dan dalam kasus tersebut input dan output terminal diduplikasi pada semua slot yang ditetapkan.
Jika
Nonedilewatkan sebagai stream_object maka duplikasi dibatalkan pada slot yang diberikan oleh index.Fungsi mengembalikan objek seperti stream sebelumnya di slot yang diberikan.
- os.dupterm_notify(obj_in: Any, /) None¶
Memberi tahu REPL MicroPython bahwa input tersedia pada objek seperti stream yang sebelumnya didaftarkan melalui
os.dupterm().Fungsi ini harus dipanggil oleh implementasi stream kustom (misalnya, UART, Bluetooth, atau stream REPL non-USB lainnya) untuk memberi tahu REPL bahwa input siap dibaca. Penggunaan yang tepat memastikan bahwa karakter khusus seperti Ctrl+C (digunakan untuk memicu KeyboardInterrupt) diproses segera oleh REPL, memungkinkan perilaku interupsi yang diharapkan untuk kode pengguna.
Parameter obj_in diabaikan oleh
os.dupterm_notify(), tetapi diperlukan untuk mengizinkan pemanggilan dupterm_notify dari penangan interupsi sepertiUART.irq().Contoh:
from machine import UART import os uart = UART(0) os.dupterm(uart, 0) uart.irq(os.dupterm_notify, machine.UART.IRQ_RX)
Catatan
Jika fungsi
dupterm_notify()tidak dipanggil, input dari stream kustom mungkin tidak terdeteksi atau diproses hingga polling REPL berikutnya, yang berpotensi menunda KeyboardInterrupt atau sinyal kontrol lainnya. Ini sangat penting untuk UART, Bluetooth, dan koneksi REPL non-standar lainnya, di mana notifikasi otomatis tidak dijamin.
Pemasangan filesystem¶
Fungsi dan kelas berikut telah dipindahkan ke modul vfs. Mereka disediakan dalam modul ini hanya untuk kompatibilitas mundur dan akan dihapus di versi 2 MicroPython.
- os.mount(fsobj: Any, mount_point: str, *, readonly: bool = False) None¶
Memasang objek filesystem fsobj di lokasi dalam VFS yang diberikan oleh string mount_point. fsobj dapat berupa objek VFS yang memiliki metode
mount(), atau perangkat blok. Jika itu adalah perangkat blok maka jenis filesystem secara otomatis terdeteksi (pengecualian dilempar jika tidak ada filesystem yang dikenali). mount_point mungkin'/'untuk memasang fsobj di root, atau'/<name>'untuk memasangnya di subdirektori di bawah root.Jika readonly adalah
Truemaka filesystem dipasang hanya-baca.Selama proses pemasangan, metode
mount()dipanggil pada objek filesystem.Akan melempar
OSError(EPERM)jika mount_point sudah dipasang.
- os.mount() List[Tuple[Any, str]]
Tanpa argumen untuk
mount(), mengembalikan daftar tuple yang mewakili semua mount point aktif.Daftar yang dikembalikan memiliki bentuk [(fsobj, mount_point), ...].
- os.umount(mount_point: str | Any) None¶
Melepas filesystem. mount_point dapat berupa string yang menamai lokasi mount, atau objek filesystem yang sebelumnya dipasang. Selama proses pelepasan, metode
umount()dipanggil pada objek filesystem.Akan melempar
OSError(EINVAL)jika mount_point tidak ditemukan.
- class os.VfsFat(block_dev: AbstractBlockDev)¶
Membuat objek filesystem yang menggunakan format filesystem FAT. Penyimpanan filesystem FAT disediakan oleh block_dev. Objek yang dibuat oleh konstruktor ini dapat dipasang menggunakan
mount().- static mkfs(block_dev: AbstractBlockDev) None¶
Membangun filesystem FAT pada block_dev.
- class os.VfsPosix(root: str | None = None)¶
Membuat objek filesystem yang mengakses filesystem POSIX host. Jika root ditentukan maka harus berupa jalur dalam filesystem host yang digunakan sebagai root objek
VfsPosix. Jika tidak, direktori saat ini dari filesystem host digunakan.Catatan
VfsPosixhanya tersedia pada port Unix; tidak ada di OpenMV Cam.