Python的OS库的简单应用

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

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

pip install os

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

import os

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

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

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

python创建文件夹的一种方式-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/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:\\CSDN文章\\2"
mubiao_folder="D:\\CSDN文章\\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:\\CSDN文章\\1'
folder_3='D:\\CSDN文章\\3'
os.rename(folder_1,folder_3)

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

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

### Python中`os`的使用 #### 导入模块 为了使用`os`的功能,需要先导入该模块。这可以通过简单的import语句完成。 ```python import os ``` #### 获取当前工作目录 获取程序执行时所在的默认位置即为当前工作目录,这对于相对路径的操作非常重要[^2]。 ```python current_directory = os.getcwd() print(f"Current Working Directory is {current_directory}") ``` #### 列出指定目录下的文件和子目录名 可以利用`listdir()`函数来查看某个特定文件夹里面的内容列表[^1]。 ```python files_and_directories = os.listdir(current_directory) for item in files_and_directories: print(item) ``` #### 创建新目录 如果想要创建一个新的文件夹,则可调用`mkdir()`方法;对于多层嵌套结构则应该采用`makedirs()`[^3]。 ```python try: os.mkdir('test_folder') except FileExistsError as e: print(e) # For nested directories use makedirs instead of mkdir. try: os.makedirs('nested/test/folder') except FileExistsError as e: print(e) ``` #### 删除目录 当不再需要某些空文件夹的时候,就可以通过`rmdir()`命令将其移除;而要删除整个树状结构的话就应当选用`removedirs()`。 ```python os.rmdir('test_folder') # Only works on empty folders. # Remove entire directory tree if it's empty from bottom up. os.removedirs('nested/test/folder') ``` #### 检查文件或目录的存在性和属性 有时可能想知道某项资源是否存在以及它的具体性质是什么样的——比如是不是一个普通的文件?这时就有必要借助于`path`模块下的一些辅助性的判定接口了,像`exists()`, `isfile()`, 和 `isdir()`等[^4]。 ```python file_path = r'C:\Users\example_user\documents\example_file.txt' if os.path.exists(file_path): if os.path.isfile(file_path): print("It's a file.") elif os.path.isdir(file_path): print("It's a directory.") else: print("The path does not exist.") ``` #### 更改当前的工作目录 改变脚本运行期间所处的位置到另一个地方去,可以用`chdir()`来做切换动作。 ```python target_dir = '/home/user/new_location' os.chdir(target_dir) new_current_directory = os.getcwd() print(f"Now working at: {new_current_directory}") ``` 以上就是关于Python内置`os`的基础介绍及其部分核心API的应用实例展示。希望这些信息能帮助理解并掌握这个强大的工具集,在日常开发过程中更加得心应手地处理各种与操作系统有关的任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值