程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

MicroPython內核開發筆記書內軟件用例 :文件系統實驗

編輯:Python

簡 介: 本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的關於文件讀寫操作以及 os 相關的軟件用例部分內容。

關鍵詞MicroPythonMM32F3277文件操作

書稿內容 目 錄
Contents
基礎實驗 os相關命令 總 結 存在問題

 

  • 本書稿內容隸屬於 MicroPython內核開發筆記:書內嵌入實驗任務 中的內容。

軟件用例:
這部分書稿內容包括有:

  1. 對於文件文件進行讀寫。
  2. 關於 os 的相關操作。
  • 書稿內位置: 第七章相關內容;

 

§01書稿內容


一、基礎實驗

1、文本文件寫入

下面代碼是在文件 text.txt 中寫入由 ‘*’ 構成的三角形文件。

import machine
fname = 'text.txt'
with open(fname, 'w') as f:
for i in range(10):
f.write('*'*(i+1) + '\n')
print("Write text file.")

代碼執行後,信息顯示:

2
3
4
5
6
7
8
9
10
11
Write text file.
>>>

每執行一句 f.write, 該函數返回寫入文件的字符數量。如果不希望程序在 f.write 輸出寫入字符數量,可以使用:

_ = f.write('*' * (i+1) + '\n')

下面程序是將 15 行楊輝三角形數值寫入文件 yhtriangle.txt 文件中。讀出結果見後面文本文件讀取實驗。

import machine
LINE_NUM = 15
b = [1]
fname = 'yhtriangle.txt'
with open(fname, 'w') as f:
for i in range(LINE_NUM):
strall = ' '.join([str(s) for s in b]) + '\n'
f.write(strall)
b = [1] + [b[n]+b[n+1] for n in range(len(b)-1)] + [1]
print('Write text file end.')

2、文本文件讀取

下面代碼將 text.txt 文件中的每一行讀入,並顯示出來。

fname = 'text.txt'
print("Text file contents:")
with open(fname, 'r') as f:
for l in f.readlines():
print(l.strip('\n'))

程序運行結果:

Text file contents:
*
**
***
****
*****
******
*******
********
*********
**********
>>>

下面代碼是將上面 fname 修改成 yhtriangle.txt 之後,讀出楊輝三角形文件中的內容。

Text file contents:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
>>>

由於文件讀取返回的類型都是 str ,所以還無法直接讀取二進制文件。

二、 os相關命令

下面通過交互式操作測試 os 相關功能。 在交互窗口內輸入以下命令。

import os
dir(os)
os.listdir('')

MicroPython 輸出結果為:

['__name__', 'remove', 'chdir', 'getcwd', 'ilistdir', 'listdir', 'mkdir', 'rename', 'rmdir', 'stat', 'statvfs', 'sync', 'unlink']
['System Volume Information', 'test.txt', 'test1.py', 'data.dat', 'mm32sub.py', 'text.txt', 'subfile.py', 'i2coled.py', 'yhtriangle.txt', 'main.PY', 'gif.txt']
>>>

第一行顯示了 os 中可以被使用的功能。第二行就是調用 os.listdir() 功能,顯示 SD 卡根目錄下所有的文件。 可以看到前面實驗中建立的 text.txt , yhtriangle.txt 等文本文件。

使用 os.remove 命令,可以刪除 SD 卡中的相關文件。比如使用

os.remove('text.txt')

便可以將 SD 卡中的 text.txt 文件刪除。重新使用 os.listdir() 獲得的結果如下。其中 text.txt 已經被刪除了。

['System Volume Information', 'test.txt', 'test1.py', 'data.dat', 'mm32sub.py', 'subfile.py', 'i2coled.py', 'yhtriangle.txt', 'sub1', 'main.PY', 'gif.txt']
>>>

 

※ 總 結 ※


本文給出了 MicroPython內核開發筆記:書內嵌入實驗任務 中的關於文件讀寫操作以及 os 相關的軟件用例部分內容。

一、存在問題

使用 f.read() 讀取二進制文件,始終返回是 str 數據對象。 這就是的對於二進制文件讀取數據出現了問題。 現在通過測試,仍然沒有找到讀寫二進制文件的方法。


■ 相關文獻鏈接:

  • MicroPython內核開發筆記:書內嵌入實驗任務

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved