Package: ampy-batch-tool
AMPY Batch Tool项目介绍AMPY Batch Tool简称ab，可以批量将项目中指定的文件夹或文件上传到MicroPython开发板痛点问题使用MicroPython写代码玩板子的时候我遇到过一些看似可以忍受但内心不停在咆哮的痛点问题比如最早使用PyCharm写代码，遇到的问题是上传文件太慢，这个是看似可以忍受的，但不能忍的是经常性的出现上传失败的问题，放弃后来使用过rshell-lite，纯命令行工具，不支持批量文件和文件夹上传，这对只写单文件项目的人来说问题不大，不过我喜欢把项目文件分类保存，放弃现在使用VS Code+RT-Thread插件，这个插件支持文件夹上传了，但速度依然很慢，而且不支持排除文件、文件夹功能，但最大的问题是它会在后台不停的运行一个串口检测程序，浪费内存可以忍，不能忍的是当打开第二个VS Code窗口的时候，前一个已经连接的串口会被强迫断开，而且作者已经停更了，这个不放弃，改改脚本还可以当做代码补全工具使用上面说到上传速度慢的问题，归根结底是因为它们上传文件的模式有问题，大概流程是这样的：打开串口创建文件夹、上传文件关闭串口重复第一步，直到最后一个文件上传完毕所以问题就出现在不停打开关闭串口上了，要解决问题也很简单，使用pyboard.py替代ampy工具，然后：打开串口创建所有文件夹、上传所有文件关闭串口简单粗暴，有效果！如何安装在线安装（推荐）# 安装$pipinstallampy-batch-tool# 更新$pipinstall--upgradeampy-batch-tool离线安装首先克隆或下载项目源文件压缩包并解压缩，然后进入项目文件夹运行命令$pythonsetup.pyinstall# for local develop$pipinstall-e.如何上传文件在你的项目文件夹下新建abconfig配置文件（ab工具默认查找该配置文件，也可以手动指定其它文件）配置文件中填写需要上传的文件夹或文件，每行一个，例如：drivers/
 !test.py
 main.py
 !services/
 not_exists/

 #services/websocket.py
 # .git/以#号开头的行：上传时排除的文件夹或文件以!号开头的行：在repl模式下上传文件后立即运行该文件在需要上传项目文件的时候执行如下命令即可$ab# 或$ababconfig如果找不到或者未手动指定配置文件，则显示使用说明完整输出内容Port List:
     [1] COM8 - Silicon Labs CP210x USB to UART Bridge (COM8)
     [2] COM1 - 通信端口 (COM1)
 Choose a port: 1

 File List (3):
 - drivers/button.py
 - services/mqtt.py
 - main.py

 Dir List (3)
 - drivers
 - drivers/others
 - services

 Not Found List (1)
 - not_exists

 Making dirs on board...
 - drivers exist
 - drivers/others exist
 - services exist

 Upload files to board...
 - uploading drivers/button.py (1/3)
 - uploading services/mqtt.py (2/3)
 - uploading main.py (3/3)

 Upload FinishedREPL 模式使用说明$ab--repl# --replcdc // for usb cdc visual serial portPortList:[1]COM3-SiliconLabsCP210xUSBtoUARTBridge(COM3)[2]COM1-通信端口(COM1)Chooseaport:1MinitermforMicroPythonREPLCtrl-Z-QuitCtrl-N-HelpCtrl-X-Killmain.pyCtrl-Y-SerialInfoCtrl-L-RunlastfileCtrl-R-RunlocalfileCtrl-T-RunboardfileCtrl-G-RunclipboardcodeCtrl-U-Uploadfilestoboard

>>>help()WelcometoMicroPythonontheESP32!

Forgenericonlinedocspleasevisithttp://docs.micropython.org/
>>>repl模式快捷键Ctrl+Z：退出replCtrl+X：一键删除main.py文件Ctrl+G：将剪贴板中的代码粘贴到repl中Ctrl+Y：显示串口相关设置Ctrl+O：显示快捷键说明Ctrl+R：运行本地文件Ctrl+T：运行远程文件Ctrl+L：再次运行上次的本地文件Ctrl+U：上传配置文件中的文件，并运行指定文件一键删除main.py文件有些时候由于在代码中写入死循环，导致无法删除或者重新上传文件的情况，可以尝试使用这个功能，快捷键为：Ctrl+X运行本地.py文件快捷键为：Ctrl+R>>> Run local file
    [1] upload_to_pypi.py
    [2] setup.py
    [3] local.py
    [4] ab\__main__.py
    [5] ab\__init__.py
    [6] ab\pyboard.py
    [7] ab\miniterm.py
Choose a file: 3

boot.py - FILE
client - PATH
drivers - PATH
onboard.py - FILE

this is a local py file
>>>运行远程.py文件也就是运行开发板上的文件，快捷键为：Ctrl+T>>>
Run onboard file
    [1] /boot.py
    [2] /drivers/ssd1306.py
    [3] /onboard.py
Choose a file: 3

this is a onboard py file
>>>运行剪贴板中的代码段快捷键为：Ctrl+G需要注意复制的代码段的缩进>>> Run clipboard code

HZK Info: //client/combined.bin
    file size : 303520
  font height : 16
    data size : 32
    scan mode : Horizontal
   byte order : LSB
   characters : 8932

slave id: 60
>>>重新运行之前的文件快捷键为：Ctrl+L注意：只能重新运行上一次的本地文件和使用快捷键Ctrl+U上传并运行的远程文件因为开发板上文件的运行方式不同，所以暂不支持一键重新运行上传配置文件中指定的文件省去每次上传文件都要退出repl模式的麻烦，快捷键为：Ctrl+U上传时会查找根目录下以abc开头的文件作为配置文件烧录固件要烧录固件，可以使用如下命令并根据提示操作：每个选择列表中第一项为默认值，可使用回车直接选择$ab--flash

Anesptoolshell

PortList:[1]COM3-SiliconLabsCP210xUSBtoUARTBridge(COM3)Chooseanoption:

ChipList:[1]auto[2]esp8266[3]esp32[4]esp32c3[5]esp32s2[6]esp32s3[7]esp32c2[8]esp32c6[9]esp32s3beta2[10]esp32c6beta[11]esp32h2beta1[12]esp32h2beta2
Chooseanoption:

AddressList:[1]0x1000[2]0x0-foresp32c3,esp32s3
Chooseanoption:

FirmwareList:[1]wh_esp32_espnow_v1.17_20210912.bin
Chooseanoption:参数说明-h：显示使用说明-m：使用minify工具压缩代码（功能未实现）-q：屏蔽操作过程中的相关提示-s：模拟操作过程，不实际上传文件--repl：进入repl模式--replcdc：进入虚拟串口repl模式--flash：使用esptool烧录固件--readme：在网页中显示使用说明已知问题调用ampy工具新建文件夹的时候如果文件夹已存在，则会抛出异常且无法捕捉偶尔出现无法进入raw_repl模式的问题，重新运行一次即可解决偶尔出现repl模式下无法输入的问题，重启开发板即可解决repl模式下上传文件也许会出现文件不完整的问题，尝试重新上传可以解决使用烧录固件功能时如果提示类似找不到esptool的信息，卸载后重新安装一次即可更新记录v0.7.14：修复快捷键Ctrl+X可能导致串口卡死的问题v0.7.13：精简代码v0.7.12：修复USB CDC模式下快捷键Ctrl+X无法正常复位的问题修复USB CDC模式下运行本地文件串口卡死的问题v0.7.11：MicroPython最新固件不需要--replcdc参数也可以正常调试了修复了使用虚拟串口发送数据可能导致的卡死的问题v0.7.10：新增--replcdc参数，可用于虚拟串口调试v0.7.9：修复串口号过滤错误v0.7.8：修复串口号过滤错误，增加对esptool工具的版本要求v0.7.7：烧录固件工具串口列表过滤掉COM1v0.7.6：修复串口列表过滤逻辑错误v0.7.5：一键删除main.py文件后执行硬重启，串口列表过滤掉COM1v0.7.4：repl模式使用回车键选择第一个端口v0.7.3：修复v0.7.2的 bug，无语。。。。v0.7.2：修改运行esptool.py为esptool。。。。v0.7.1：修改运行esptool为esptool.pyv0.7：新增--flash参数，使用esptool烧录固件v0.6.2：再次尝试修复v0.6.1的问题，应该是串口写入等待时间不够，只能增加延时v0.6.1：修复repl模式下上传文件不完整和不能运行文件的问题v0.6：增加在repl模式下直接上传文件的功能v0.5：调整了repl模式下的快捷键repl模式增加运行本地文件功能repl模式增加运行远程文件功能美化repl模式提示内容v0.4.2：repl模式增加一键删除main.py文件功能v0.4.1：repl模式增加粘贴代码功能v0.4：增加进入repl模式菜单和相关功能v0.3.2：修复由于v0.3.1导致的分隔路径错误问题v0.3.1：修复上传文件时字符转义的问题v0.3：重构了获取所有文件和文件夹列表功能增加了显示网页版使用说明的参数enter_raw_repl()中增加延时，尝试解决已知问题2v0.2.2：修复某些开发板不能读取串口数据的问题（如安信可 ESP32C3 系列开发板）v0.2.1：修复导入模块路径问题v0.2：使用pyboard.py替代ampy以提升文件上传效率，并解决已知问题 1禁用了代码压缩功能，使用pyminifier压缩代码会出现问题删除指定临时目录参数v0.1.1：尝试上传到PyPIv0.1：完成基本功能附录：repl快捷键汇总排除掉MicroPython已经使用的，以及与各种编辑器和终端发生冲突的，而且只能使用字母键，所以实际可用的按键其实并不多，凑合选择了一组，就是现在使用的这些# 不可用的Ctrl+:A-rawreplmodeB-softreset/exitrawreplC-interruptrun/cancelpastemodeD-softreset/finishpastemodeE-pastemodeI-listimportedmodulesJ,M-enterkeyP-upkeyV-mostlypaste# 之前使用的Ctrl+:L-showserialportinfoO-showhelpR-runlocalpyfileT-runonboardpyfileU-runcodeinclipboard]-quit[-deleteonboardfilemain.py# 现在使用的Ctrl+:Z-quitX-deleteonboardfilemain.pyN-showhelpY-showserialportinfoL-runlastpyfile(local/onboard)R-runlocalpyfileT-runonboardpyfileG-runcodeinclipboardU-uploadfilestoboard# 可用的 (闲置的)Ctrl+:F-vsc冲突H-bs冲突K-vsc冲突Q-vsc冲突S-vsc冲突W-cmder冲突合作及交流联系邮箱：walkline@163.comQQ 交流群：走线物联：163271910扇贝物联：31324057