MicroPython手册之内置模块 rename

MicroPython是为了在嵌入式系统中运行Python 3编程语言而设计的轻量级版本解释器。与常规Python相比,MicroPython解释器体积小(仅100KB左右),通过编译成二进制Executable文件运行,执行效率较高。它使用了轻量级的垃圾回收机制并移除了大部分Python标准库,以适应资源限制的微控制器。

MicroPython主要特点包括:
1、语法和功能与标准Python兼容,易学易用。支持Python大多数核心语法。
2、对硬件直接访问和控制,像Arduino一样控制GPIO、I2C、SPI等。
3、强大的模块系统,提供文件系统、网络、图形界面等功能。
4、支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
5、代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
6、开源许可,免费使用。Shell交互环境为开发测试提供便利。
7、内置I/O驱动支持大量微控制器平台,如ESP8266、ESP32、STM32、micro:bit、掌控板和PyBoard等。有活跃的社区。

MicroPython的应用场景包括:
1、为嵌入式产品快速构建原型和用户交互。
2、制作一些小型的可 programmable 硬件项目。
3、作为教育工具,帮助初学者学习Python和物联网编程。
4、构建智能设备固件,实现高级控制和云连接。
5、各种微控制器应用如物联网、嵌入式智能、机器人等。

使用MicroPython需要注意:
1、内存和Flash空间有限。
2、解释执行效率不如C语言。
3、部分库函数与标准版有差异。
4、针对平台优化语法,订正与标准Python的差异。
5、合理使用内存资源,避免频繁分配大内存块。
6、利用原生代码提升速度关键部位的性能。
7、适当使用抽象来封装底层硬件操作。

总体来说,MicroPython让Python进入了微控制器领域,是一项重要的创新,既降低了编程门槛,又提供了良好的硬件控制能力。非常适合各类物联网和智能硬件的开发。

MicroPython的内置模块os提供了一些基本的操作系统服务,包括文件系统的访问和管理。其中,os.rename(old_path, new_path)是一个用于重命名文件的函数。它的主要特点、应用场景,以及需注意事项如下:

主要特点:os.rename(old_path, new_path)接受两个字符串参数old_path和new_path,表示要重命名的文件的原路径和新路径。如果old_path不存在,或者old_path不是一个文件,或者old_path或new_path中包含无效的字符,那么os.rename(old_path, new_path)会抛出一个异常。如果old_path和new_path是相同的,那么os.rename(old_path, new_path)不会做任何事情。

应用场景:os.rename(old_path, new_path)可以用于在文件系统中修改文件的名字或位置。例如,可以用os.rename(old_path, new_path)将一个文件从一个目录移动到另一个目录,或者将一个文件的扩展名改为另一个扩展名。

需注意事项:在使用os.rename(old_path, new_path)之前,需要确保old_path是一个合法的路径,且old_path是一个存在的文件。否则,os.rename(old_path, new_path)会失败并抛出异常。另外,如果old_path或new_path是一个相对路径,那么它们是相对于当前工作目录的。因此,在使用os.rename(old_path, new_path)之前,最好先用os.getcwd()获取当前工作目录,并根据需要调整old_path或new_path的值。

以下是MicroPython的内置模块os.rename(old_path, new_path)的几个实际运用程序案例:

案例一:在MicroPython板子上将一个名为’test.txt’的文件重命名为’result.txt’。代码如下:

import os

# 定义要重命名的文件的原路径和新路径
old_path = 'test.txt'
new_path = 'result.txt'

# 重命名文件
os.rename(old_path, new_path)

案例二:在MicroPython板子上将一个名为’hello.py’的脚本文件从根目录移动到’scripts’目录下,并改名为’greet.py’。代码如下:

import os

# 定义要重命名的文件的原路径和新路径
old_path = '/hello.py'
new_path = '/scripts/greet.py'

# 重命名文件
os.rename(old_path, new_path)

案例三:在MicroPython板子上将一个名为’image.jpg’的图像文件的扩展名改为’.png’。代码如下:

import os

# 定义要重命名的文件的原路径和新路径
old_path = 'image.jpg'
new_path = 'image.png'

# 重命名文件
os.rename(old_path, new_path)

案例四:重命名文件:

import os

# 定义原始文件路径和新文件路径
old_file_path = "/home/pi/documents/old_file.txt"
new_file_path = "/home/pi/documents/new_file.txt"

# 检查原始文件是否存在并重命名
if os.path.exists(old_file_path):
    os.rename(old_file_path, new_file_path)
    print("已成功将文件重命名为:", new_file_path)
else:
    print("原始文件不存在:", old_file_path)

在这个例子中,我们使用os模块的rename函数将指定路径下的文件重命名。我们定义了原始文件路径和新文件路径,然后使用os.path.exists函数检查原始文件是否存在。如果文件存在,我们使用os.rename函数将文件重命名为新文件路径,并打印出重命名成功的消息。如果原始文件不存在,则打印出原始文件不存在的消息。

案例五:批量重命名文件夹中的文件:
 

import os

# 定义目标文件夹
folder = "/home/pi/photos"

# 获取文件列表
files = os.listdir(folder)

# 批量重命名文件夹中的文件
for file in files:
    old_name = os.path.join(folder, file)
    new_name = os.path.join(folder, "new_" + file)
    os.rename(old_name, new_name)
    print("已成功将文件重命名为:", new_name)

在这个例子中,我们使用os模块的rename函数批量重命名文件夹中的文件。我们使用os.listdir函数获取指定文件夹中的文件列表,然后使用for循环遍历文件列表。在每次循环中,我们使用os.path.join函数定义原始文件路径和新文件路径,然后使用os.rename函数将文件重命名为新文件路径,并打印出重命名成功的消息。

案例六:移动文件并重命名:
 

import os

# 定义要移动的文件路径和目标文件夹路径
file_path = "/home/pi/documents/file.txt"
target_folder = "/home/pi/archive"

# 检查文件是否存在并移动重命名
if os.path.exists(file_path):
    new_file_path = os.path.join(target_folder, "new_file.txt")
    os.rename(file_path, new_file_path)
    print("已成功将文件移动并重命名为:", new_file_path)
else:
    print("文件不存在:", file_path)