目錄
本次的範例中會使用到 ESP32-CAM 的檔案存取、燈號控制、Wi-Fi、時間、拍照、網路等功能,接下來會逐步介紹如何使用這些功能。
MicroPython 提供 Python 標準函式庫功能的內建模塊(例如 os、time)以及 MicroPython 特定的模塊(例如 bluetooth, machine)。大多數標準函式庫模塊實現了等效 Python 模塊的一部分功能,並且在少數情況下提供了一些 MicroPython 特定的擴展(例如 array, os),但由於資源限制或其他限制,某些韌體版本可能不包括官方手冊的所有功能。
以下 Python 的標準函式庫已經過「微化」以適應 MicroPython 的理念,它們提供該模塊的核心功能,旨在成為標準 Python 庫的直接替代品。
原則上,標準模塊都實現了相應 CPython 模塊的一個子集,有關更多信息,可以參閱原始 CPython 文檔。CPython 是 Python 編程語言的參考實現,也是最著名的一種。然而,它是眾多實現中的一種(包括 Jython、IronPython、PyPy 和 MicroPython)。雖然 MicroPython 的實現與 CPython 有很大不同,但它旨在盡可能保持兼容性。
io.open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
打開一個檔案,並返回檔案物件,使用 open() 方法一定要保證關閉檔案物件,即呼叫 close() 方法。所有移植物件(port)都需要支持模式參數(mode),但對其他參數的支持因移植物件而異。
參數說明:
表 1. open() 打開模式(mode)
參數 | 描述 |
---|---|
r | 以只讀方式開啓(默認) |
w | 以寫入方式打開檔案,會覆蓋已存在的檔案 |
x | 如果檔案已經存在,會引發異常 |
a | 以寫入方式打開檔案,已末尾追加方式寫入 |
b | 以二進制模式打開檔案 |
t | 以文本模式打開(默認) |
+ | 可讀寫模式 |
U | 通用換行符支持 |
表 2. 檔案物件常見的方法
方法 | 描述 |
---|---|
close() | 關閉檔案 |
read(size=-1) | 從檔案讀取size個字符,未給定size或給定負值,會讀取剩餘的所有字符,回傳字符串 |
readline() | 讀取一行 |
write(str) | 將字符串str寫入檔案 |
writelines(seq) | 向檔案寫入字符串序列seq,seq是一個返回字符串的可迭代物件 |
seek(offset, from) | 在檔案中移動檔案指針,從from(0-檔案起始位置,1-當前位置,2-檔案末尾)偏移offset個字節 |
tell() | 返回檔案指針所在字節數 |
以下為寫入一個檔案,再將數據讀取出來。
參考代碼
import io
f = open('myfile.txt', 'w')
f.write('''Jupyter 是基於網頁的用於交互計算的應用程序,
可被應用於全過程計算:開發、文檔編寫、
運行代碼和展示結果。''')
f.close()
f = open('myfile.txt')
print(f.read())
f.close()
輸出結果為:
151
Jupyter 是基於網頁的用於交互計算的應用程序,
可被應用於全過程計算:開發、文檔編寫、
運行代碼和展示結果。
下圖是使用 Thonny 的執行結果
圖 1. 使用Thonny執行結果
可以在上方工具列上的選擇 檢視->檔案,就會出現左方的檔案窗格
圖 2. 顯示左方的檔案窗格