Python的OS库的简单应用

最近在工作中,笔者遇到需要将一大段程序跑完生成后的数据,放到一个指定位置的文件夹中,同时只保留最终数据,并不保留中间过程数据。这就可以用到Python的os库来完成这个需求了。

os库是Python用来处理系统文件,操作系统文件的第三方库,在命令行窗口,输入:

pip install os

就可以下载os了,然后可以使用以下代码将os库引入到Python中:

import os

那接下来笔者就来说一下这次需求所用到os库代码:

首先,这个需求的前提是每天都会产生很多的数据,并保存到数据文件中。我们需要明天都创建一个新的文件夹来保存每天产生的数据,那么我们可以使用os库的mkdir方法进行文件夹的创建。注意单独的os库不能创建除了文件夹以外的其他文件,如果需要创建文件夹以外的其他文件,需要配合Python的其他第三方库来实现。

具体的代码可以看这个文章,能够规避因为文件夹重名的问题,笔者在新手的时候被狠狠的坑过

python创建文件夹的一种方式-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/king_crison/article/details/134573750?spm=1001.2014.3001.5502

那么记下来就是文件的删除,要知道本次需求只要最终结果,不需要保存中间文件,一是减少服务器的承重量,第二个是因为中间文件太散太杂,没有什么研究的意义。因此可以使用os库中的remove来删除文件,例如,我想删除一个后缀为xlsx的文件,那么代码就是这样的。

#将这个file_path修改为你所需要删除的文件
file_path='xxxx.xlsx'

#这个os.path.exists方法是判断你输入的文件的路径是否正确,如果正确返回的就是Ture,进行if操作,如果不正确返回的就是False,进行else里面的操作,你可以根据自己的需求进行修改
if os.path.exists(file_path):
    os.remove(file_path)
#这个f""是一种pring打印的方式,可以将变量中的数据打印出来,在多元素和变量的打印中会比较方便
    print(f'{file_path} 文件已经被删除')
else:
    print(f'{file_path} 文件不存在')

和mkdir方法不同的是,remove方法可以用来删除指定的文件,无论是什么类型,只要路径正确就可以删除,因此删除之前,一定要明确好文件的作用,建议直接复制路径到元素中,防止误删。

在完成每天数据收集之后呢,每个月还要将这些文件夹移动到指定的文件夹中,以作保存,那么要如何将单个文件或者文件夹下所有文件夹移动到一个指定的文件夹中,就可以使用os库中的rename这个方法了

#设定要转移的文件夹(源文件夹)路径和需要转移到的路径(目标路径)
yuan_folder="D:\\优快云文章\\2"
mubiao_folder="D:\\优快云文章\\1\\2"(这里记得一定要加上源文件夹的名称)

#老规矩,当源文件夹不存在或者目标路径有相同的名称的文件夹时,代码会报错,为了程序的稳定运行需要先判断
if not os.path.exists(mubiao_folder) and os.path.exists(yuan_folder):
    os.rename(yuan_folder,mubiao_folder)
else:
    if os.path.exists(target_folder):
        print(f"目标文件夹{target_folder}已经存在")
    if not os.path.exists(yuan_folder):
        print(f"源文件夹{yuan_folder}不存在")

有人看完就会说,啊,老笔灯,这个rename不是重命名的含义嘛,为什么也可以用来移动文件夹,当然这个方法的主要功能就是改名,但是并不影响它有移动文件夹的功能嘛,能者多劳嘛,那它的重命名的代码如下:

folder_1='D:\\优快云文章\\1'
folder_3='D:\\优快云文章\\3'
os.rename(folder_1,folder_3)

这样就将优快云文章下的名称为1的文件夹修改为名称为3啦,是不是很简单。值得注意的是,在修改名字的时候或者对文件夹进行修改的时候,一定要注意是否打开了这个文件夹,打开了之后在修改就会爆出拒绝访问的错误噢。

好了,这些就是笔者在这次需求中,总结的os库的一些简单使用方法和使用场景,希望能给到你们帮助,如果有疑问或指正,可以在评论区留言。谢谢各位观看。

### 关于 MicroPython 中 `os` 的使用 MicroPython 提供了一个精简版的 `os` 模块,该模块主要用于处理文件系统操作以及一些基本的操作系统接口[^1]。尽管其功能相较于标准 Python 的 `os` 模块有所简化,但仍提供了足够的工具来满足嵌入式系统的常见需求。 以下是有关 MicroPython 中 `os` 的一些核心功能及其用法: #### 文件系统管理 `os` 模块支持常见的文件系统操作,例如创建目录、删除文件或目录、重命名文件等。以下是一些常用的函数及其示例代码: - **列出当前目录下的文件** ```python import os files = os.listdir() # 列出根目录中的所有文件和目录 print(files) ``` - **创建新目录** ```python os.mkdir("/new_directory") # 创建名为 new_directory 的目录 ``` - **移除文件** ```python os.remove("/path/to/file.txt") # 删除指定路径的文件 ``` - **更改工作目录** ```python os.chdir("/desired/directory") # 更改当前的工作目录 ``` - **获取当前工作目录** ```python current_dir = os.getcwd() # 获取当前工作目录 print(current_dir) ``` #### 其他常用方法 除了文件系统管理外,`os` 模块还提供了一些其他实用的功能,比如查看统计信息或同步文件系统缓存: - **获取文件状态** ```python stats = os.stat("/file/path") # 返回文件的状态元组 (st_mode, st_ino, st_dev, ...) print(stats) ``` - **同步文件系统** ```python os.sync() # 将缓冲区的内容写入磁盘并刷新缓存 ``` 需要注意的是,由于 MicroPython 高度可配置的特点,某些移植版本可能不完全支持所有的 `os` 功能[^2]。因此,在实际应用前应查阅目标硬件的具体文档以确认可用性。 --- ### 示例:完整的文件管理系统脚本 下面是一个综合性的例子,展示了如何利用 `os` 模块完成一系列文件系统操作: ```python import os # 查看当前目录下所有文件 print("Current directory contents:", os.listdir()) # 创建一个新的子目录 try: os.mkdir("example_folder") except OSError as e: print(f"Directory creation failed: {e}") # 改变到新建的目录 os.chdir("example_folder") # 在新的目录中创建一个测试文件 with open("test_file.txt", "w") as f: f.write("This is a test file.") # 显示新目录中的内容 print("New folder contents:", os.listdir()) ``` 此脚本会依次执行以下任务: 1. 列举当前目录下的所有文件; 2. 创建一个名为 `example_folder` 的新目录; 3. 转移到这个新目录; 4. 在其中创建一个简单的文本文件。 --- ### 注意事项 虽然 MicroPython 的 `os` 模块设计简洁高效,但在资源受限的环境中仍需谨慎使用。特别是涉及大量数据读写的场景时,建议优化内存占用并合理分配存储空间[^3]。 此外,不同平台之间的行为可能存在细微差异。例如,部分设备可能会限制对特定路径的访问权限或者不具备完整的 POSIX 兼容性[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值