如何快速上手os模块

os模块

os模块全名是操作系统接口模块。os模块提供了大量的方法供我们来处理文件和目录方面的事情。

os模块的相关操作

(一)对文件的相关操作
1、重命名文件
os.rename(src, dst)

import os
# os.rename(src, dst) # src是旧文件名,dst是新文件名
os.rename("test.txt", "new_test.txt")  # 如果旧文件名不存在会报错

2、删除文件
os.remove(path)

# os.remove(path)
os.remove('new_test.txt')  # 删除的只能是文件,如果是目录会报错

3、生成单层目录
os.mkdir(path)

# 创建目录mkdir()
os.mkdir('file01')      # 生成单层目录

4、创建多层目录
os.makedirs()

os.makedirs('test/test/test') # 递归常见目录,如果目录已存在会报错 exist_ok = True不报错

5、删除目录
os.rmdir(path)
当目录为空时才可以被删除

os.rmdir('file01')   # 指定要删除的路径

6、删除多级目录
os.removedirs()
若目录为空则删除,并递归到上一级目录,若上一级目录也为空,也一起删除,以此类推,直到删除完或者某个路径不为空则停止。

os.removedirs('test/test/test')  # 删除多级目录 删除时目录为空则删除

7、获取当前所在目录
os.getcwd()

path = os.getcwd()   # 获取当前所在目录
print(path)

8、获取目录列表
os.listdir(path)

lst = os.listdir(os.getcwd())
print(lst)

9、切换文件所在目录
os.chdir(path)

os.chdir(os.getcwd() + '\\file01')
print(os.getcwd())

10、判断文件或者文件夹是否存在
os.path.exits(path)

ret = os.path.exits('file01/aq')

11、判断是否为文件

bool = os.path.isfile('demo01.py')

12、判断是否为目录

bool = os.path.isdir('test')   # 是则返回True,不是则返回False

13、获取绝对路径

bool = os.path.abspath('test')   # 是则返回True,不是则返回False

14、判断是否为绝对路径

bool = os.path.isabs(os.getcwd())   # 是则返回True,不是则返回False

15、获取路径中的最后部分

path = os.path.basename('file02/file03/aa')
print(path)   # aa

print(__file__)   # 获取当前文件的目录

path = os.path.basename(__file__)
print(path)   # 获取当前路径的文件名,__file__为内置变量获取当前文件路径

16、获取路径中的路径部分
获取父目录部分(不管最后是文件还是文件夹)

dirname = os.path.dirname('/User/xt_zsh/PycharmProjects/Study/class.py')

os模块小练习

# 1.封装函数,可以实现文件复制(先读取目标文件,再写入新文件)
# 如:将111.txt复制一份,文件名为222.txt
"""文件复制"""
def copy(file1, file2):
    with open(file1, "r") as f1:
        content = f1.read()
        with open(file2, "w") as f2:
            f2.write(content)


copy("01.txt", "02.txt")

# 2.封装函数,可以实现文件备份(先读取目标文件,再写入新文件)
# 如:将111.txt复制一份,文件名为111_副本.txt
"""备份文件"""
def backup(file):
    with open(file, "r", encoding="UTF-8") as f:
        content = f.read()
        ret = file.partition(".")
        with open(ret[0]+"_副本"+ret[1]+ret[2], "w", encoding="UTF-8") as f_backup:
            f_backup.write(content)


backup("movie.py")
  
#3.封装函数,打印某个文件内的所有的文件名
"""封装函数,打印某个文件内的所有文件名(采用函数的递归方法)"""
import os


# 传进来的路径必须是绝对路径,不然只会罗列此执行文件当前所在目录的文件
def file_list(dir_name):
    for i in os.listdir(dir_name):
        # 判断的路径也需要是绝对路径,如果是相对路径只会在执行文件所在目录中
        if os.path.isdir(dir_name+"/"+i):
            file_list(dir_name+"/"+i)
        else:
            print(i)


ret = os.getcwd()
print(ret)
file_list(ret)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值