Python标准库之OS库

目录

一、介绍

二、目录操作

1、获取当前工作目录

2、删除目录(空目录)

2.1、删除当前目录

2.2、递归删除目录

3、删除目录(非空目录)

4、创建目录

5、递归创建目录

6、判断是否为目录

7、改变当前目录到指定目录

三、文件操作

1、创建文件

2、删除文件

3、文件重命名

4、判断是否为文件

5、获取文件信息

四、其他操作

1、判断路径对象是否存在

2、获取路径下所有的文件和目录

3、深层遍历指定路径下的所有子文件夹、文件

4、路径拼接

5、路径拆分

5.1、拆分为上级目录+文件名

5.2、只获取上级目录

5.3、只获取文件名

6、获取操作系统的路径分隔符

7、判断当前的操作系统


一、介绍

os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块,本节内容将对os模块提供的函数进行详细的解读

在使用的时候,需要导入该库

import os

二、目录操作

1、获取当前工作目录

os.getcwd()

2、删除目录(空目录)

2.1、删除当前目录

该方法只能删除当前目录。如果目录下还有文件夹或文件,会报错

os.rmdir(path)      #传入一个完整的path路径

2.2、递归删除目录

可以删除多层递归的空目录,若目录中有文件则无法删除

os.removedirs(path)    #传入一个完整的path路径

3、删除目录(非空目录)

该方法原理即先判断路径对象是否存在,再遍历目录中的文件和子目录,然后删除子目录和文件,最后删除顶层的目录

下面这是对象的删除非空目录的函数方法,可直接调用

def delete_non_empty_directory(path):
    try:
        # 判断路径是否存在
        if not os.path.exists(path):
            print(f"目录 {path} 不存在")
            return

        # 遍历目录中的文件和子目录
        for root, dirs, files in os.walk(path, topdown=False):
            for file_name in files:
                file_path = os.path.join(root, file_name)
                # 删除文件
                os.remove(file_path)
            for dir_name in dirs:
                dir_path = os.path.join(root, dir_name)
                # 删除子目录
                os.rmdir(dir_path)

        # 最后删除顶层目录
        os.rmdir(path)
        print(f"成功删除目录 {path}")
    except Exception as e:
        print(f"删除目录 {path} 失败:{e}")

4、创建目录

如果文件夹存在时,使用该方法,会报错,所以需要结合exists先进行判断是否存在

os.mkdir(path)      #传入一个完整的path路径

5、递归创建目录

os.makedirs(path)   #传入一个完整的path路径

6、判断是否为目录

os.path.isdir(path) #传入一个完整的path路径

7、改变当前目录到指定目录

print(os.getcwd()) 
path='/tmp'
os.chdir(path)     #实现改变路径的方法
print(os.getcwd())

/home/kiosk/PycharmProjects/2019python
/tmp

三、文件操作

1、创建文件

如果文件存在时,使用该方法,会报错,所以需要结合exists先进行判断是否存在

os.mknod(path)   #传入对应的路径

2、删除文件

os.remove(path)   #传入对应的路径

3、文件重命名

os.rename('data.txt','data1.txt')

4、判断是否为文件

os.path.isfile(path)   #传入一个完整的path路径

5、获取文件信息

os.path.getatime(path)    #返回最近访问时间  (浮点型秒数)
os.path.getctime(path)    #返回文件创建时间
os.path.getmtime(path)    #返回最近文件修改时间
os.path.getsize(path)    #返回文件大小 (字节为单位)

四、其他操作

1、判断路径对象是否存在

该方法返回一个布尔值

os.path.exists(path)   #传入一个完整路径对象,判断路径对象是否存在

2、获取路径下所有的文件和目录

该方法只会获取到当前路径的,不会深层次进行遍历。

listpath=os.listdir(path)  #传入一个完整路径

3、深层遍历指定路径下的所有子文件夹、文件

深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组。

可以结合for循环来使用

for path,dirs,files in os.walk(path1):   #传入一个完整路径。
     print(path)
     print(dirs)
     print(files)

4、路径拼接

要将文件名加到路径后面,就可以用该方法

path1='D://'
path2='a.txt'

os.path.join(path1,path2)   #将两个路径拼接起来

5、路径拆分

5.1、拆分为上级目录+文件名

os.path.split(path)      #传入一个完整的path路径,将其拆分为上级目录和文件名部分;

5.2、只获取上级目录

os.path.dirname(path)   #传入一个完整的path路径,只获取上级目录;

5.3、只获取文件名

os.path.basename(path) #传入一个完整的path路径,只获取文件名部分;

6、获取操作系统的路径分隔符

os.path.sep

7、判断当前的操作系统

返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统

print(os.name)
print('Linux' if os.name == 'posix' else 'Windows')

posix
Linux

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星浩前进中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值