使用vscode給microPython上添加第三方庫,並測試m5stack上用elementTree庫解析xml文件


microPython並沒有官方的xml解析工具,我在pfalcon/pycopy-lib: Standard library of the Pycopy project, minimalist and light-weight Python language implementation (github.com)里找到了精簡的elementTree庫(可以解析xml文件或者字符串的節點文本,屬性等,但是對比完整的ET庫並不能生成xml),下載地址pycopy-lib/xml.etree.ElementTree at master · pfalcon/pycopy-lib (github.com)pycopy-lib/xmltok2 at master · pfalcon/pycopy-lib (github.com)

需要下載兩個文件 xmltok2.py,ElementTree.py,

在vscode的擴展里搜索   vscode-m5stack-mpy,安裝后就可以簡單的添加文件,也可以在vscode里直接讓m5s直接執行python文件   

 

 

點擊下邊的  Add M5Stack添加設備,加號新建文件,上箭頭上傳文件到m5s上,把下載下來的兩個py文件上傳到設備。 執行  

import ElementTree as ET 

 

dir(ET)

如果能顯示ET庫的方法,證明導入庫成功

關於ET庫的使用方法   (11條消息) Python xml.etree.ElementTree解析XML文件_凱耐的博客-CSDN博客_xml.etree.elementtree

這是我個人寫的一個例子

 

 

from m5stack import *
from m5ui import *
from uiflow import *
import time

setScreenColor(0x222222)


xmlString = None
rootTag = None
rootText = None
root01tag = None
root01text = None
root01attrib = None


label0 = M5TextBox(23, 33, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
title0 = M5Title(title="Title", x=3, fgcolor=0xFFFFFF, bgcolor=0x0000FF)
label1 = M5TextBox(23, 61, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(22, 87, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(22, 116, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(25, 151, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)




lcd.clear()
import ElementTree as ET
xmlString = '<?xml version="1.0"?> <data>     <country name="Liechtenstein">         <rank>1</rank>         <year>2008</year>         <gdppc>141100</gdppc>         <neighbor name="Austria" direction="E"/>         <neighbor name="Switzerland" direction="W"/>     </country>     <country name="Singapore">         <rank>4</rank>         <year>2011</year>         <gdppc>59900</gdppc>         <neighbor name="Malaysia" direction="N"/>     </country>     <country name="Panama">         <rank>68</rank>         <year>2011</year>         <gdppc>13600</gdppc>         <neighbor name="Costa Rica" direction="W"/>         <neighbor name="Colombia" direction="E"/>     </country> </data>'
lcd.clear()
lcd.print(xmlString, 0, 0, 0xffffff)
wait(2)
lcd.clear()
title0.setBgColor(0x000099)
title0.setTitle('parsing...')
root = ET.fromstring(xmlString)
title0.setTitle('parsing   complete')
rootTag = 0
rootTag = root.tag
label0.setText(str((str('root.tag:') + str(rootTag))))
rootText = 0
rootText  = root.text
label1.setText(str((str('root.text:') + str(rootText))))
root01tag = 0
root01tag = root[0][1].tag
label2.setText(str((str('root[0][1].tag:') + str(root01tag))))
root01text = 0
root01Text  = root[0][1].text
label3.setText(str((str('root[0][1].text:') + str(root01text))))
root01attrib = 0
root01attrib = root[0][1].attrib
label4.setText(str((str('root[0][1].attrib:') + str(root01attrib))))

實際運行效果   ,可以看出純py在micropyhhon上運行還是比較慢的

 4.69 FhB:/ m5stack添加第三方ET庫來解析xml  https://v.douyin.com/RRVMGCV/ 覆zhi此鏈接,打開Douyin搜索,直接觀看視頻!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM