2

我是 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 to microfs

import microfs
print microfs.ls()

但我收到错误IOError: 找不到 micro:bit。

我想,没有找到 m:b。我究竟做错了什么?我还能尝试什么?

4

3 回答 3

1

如前所述,您可以使用命令行 ufs 来放置、获取、列出和删除 microbit 上的文件。

pip install microfs --user

然后使用 ufs 列出、删除、放置和获取文件到 microbit 和从 microbit 中删除。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

通过使用文件浏览器(例如 Linux 中的 Nautilus)双击 microbit 来连接它。使用 mu 将 empty.py 闪存到 microbit 上。然后编写您的 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>
于 2017-11-22T12:46:15.120 回答
1

有时,如果 uFlash 或 MicroFs 之类的脚本无法找到 micro:bit,拔下 USB 电缆会有所帮助,等待几秒钟再重新插入(Linux 用户的附加说明,尽管我知道情况并非如此对你来说,在 Linux 上等到安装 micro:bit 驱动器也很有帮助)。

您使用 MicroFs 访问 MicroPython 文件是正确的,因为它们位于微控制器闪存中,并且无法通过 USB 大容量存储接口访问。请记住,将新程序写入 micro:bit 确实会擦除所有闪存内容,包括您之前的程序可能创建的任何文件。

为了易于使用,我建议使用 Mu 编辑器 ( https://codewith.mu ),因为它为您提供了一个 GUI 来将文件移入和移出 micro:bit。值得注意的是,Mu 在内部使用 uFlash 和 MicroFs,因此它会给您与使用这些单独的命令行工具相同的结果。

于 2017-04-13T16:53:54.730 回答
1

在收到“找不到”消息后,我也花了几个小时寻找让 microfs 和 mu 从 microbit 读取文件的答案。

我刚刚找到了一个解决方案:更新 microbit 固件

我已经将一个空的 Python 文件从 mu 闪存到 microbit,然后使用命令行 ufs put<path to file>\main.py复制创建文本文件并在 microbit 上显示心脏的代码。

现在Filesmu 中的选项正确显示main.py,并在我的 microbit 上创建了文本文件。

我希望这有帮助。

于 2017-11-03T11:10:50.063 回答