提问人:am2 提问时间:4/12/2017 更新时间:11/22/2017 访问量:3488
如何将micro:bit写入的文件传输到PC上?
How to get files written by the micro:bit to the PC?
问:
我是BBC micro:bit的新手,所以我有以下问题:
我想读取动作并将其写入 m:b 上的文件,毕竟我想从那里将其下载到 PC 上进行处理。
我是这样写的文件:
from microbit import *
with open('FileName.txt', 'w') as my_file:
my_file.write('text to write down')
当我将 m:b 用作 USB 设备时,我看不到该文件。 但是当我对 m:b 进行编程以列出所有文件时,它在文件之前写得很短。
我知道,m:b没有磁盘操作系统,所以我尝试用python代码拉它,我在Windows PC上启动了以下python代码: (参见:Docs 到 microfs)
import microfs
print microfs.ls()
但是我收到错误IOError:找不到micro:bit。
我想没有找到 m:b。 我做错了什么?我还能尝试什么?
答:
有时,如果像uFlash或MicroFs这样的脚本找不到micro:bit,如果你拔掉USB电缆,等待几秒钟,然后重新插入,它会有所帮助(Linux用户的附加说明,虽然我知道你不是这种情况,但在Linux上,等到micro也很有帮助:已安装位驱动器)。
使用 MicroFs 访问 MicroPython 文件是正确的,因为它们位于微控制器闪存中,无法通过 USB 大容量存储接口访问。请记住,在micro:bit中编写一个新程序确实会删除所有Flash内容,包括你以前的程序可能创建的任何文件。
为了便于使用,我建议使用Mu编辑器(https://codewith.mu),因为它提供了一个GUI来将文件移入和移出micro:bit。值得注意的是,Mu 在内部使用 uFlash 和 MicroFs,因此它会给你与使用这些单独的命令行工具相同的结果。
评论
uflash
我也花了几个小时寻找让 microfs 和 mu 在收到“找不到它”消息后从 microbit 读取文件的答案。
我刚刚找到了一个解决方案:更新microbit固件。
我将一个空的 Python 文件从 mu 闪存到 microbit,然后使用命令行 ufs put 复制创建文本文件并在 microbit 上显示心形的代码。<path to file>\main.py
现在 mu 中的选项正确显示,并且创建的文本文件在我的 microbit 上。Files
main.py
我希望这会有所帮助。
如前所述,您可以使用命令行 ufs 在微位上放置、获取、列出和删除文件。
pip install microfs --user
然后使用 ufs 列出、删除、放置和获取文件到和离开微比特。 GitHub 站点:https://github.com/ntoll/microfs。 命令包括:
ufs ls #list files on the card
ufs rm <filename> # remove a file
ufs put <filename> # write a file to the micro:bit
ufs get <filename> # get a file from the micro:bit
首先,将一个空白的.py文件放到micro:bit上。在 Linux 中,您可以使用以下命令创建它:
touch empty.py
使用文件浏览器双击microbit(例如Linux中的Nautilus)与microbit连接。 使用 mu 将 empty.py 刷到微位上。 然后编写你的 Micropython 代码并将其命名为 main.py。使用 ufs 将 main.py 写入 micro:bit。
ufs main.py
此文件将在重置和重新启动时运行。你可以让你的 main.py 文件导入并在micro:bit上使用其他Micropython文件。使用ufs把它们放到micro:bit上。
ufs <file to import to main.py>.py
例如
ufs put utilities.py
可以使用 ufs put 覆盖文件。 不能同时使用 ufs 和 repl。 现在,您可以编写和读取文本文件了。请找到我为此使用的两个示例函数。
def read_file(filename):
with open(filename, 'r') as my_file:
read_value = my_file.read()
return read_value
def write_file(filename, value):
with open(filename, 'w') as my_file:
my_file.write(str(value))
my_file.close()
文件被写入微比特,在重新供电设备后,数据保持不变。可以使用以下方法查看数据文件:
ufs ls
然后使用以下命令复制到本地计算机:
ufs get <filename>
评论
ufs put my_script.py main.py
评论