【Python】OS模块

简介

  OS(operating system)模块主要用于程序同操作系统交互的接口,例如常见的路径操作、进程管理、环境参数等

常用函数

import os
# 获取当前工作的路径
os.getcwdb()
# 返回对应操作系统文件路径的分隔符
# Windows上文件路径的分隔符为\,Linux上则为/
os.sep
# 通过调用系统命令行模式,执行对应系统命令
# 在Unix上,返回值是进程的退出状态,在Windows上,返回值是系统 shell 程序在运行命令后返回的值。
# 打开系统计算器
os.system('calc')
# 返回路径下所有文件和目录的列表
os.listdir(os.getcwd())
# 深层次遍历指定路径下的所有子文件夹,返回一个由路径、文件夹列表、文件列表组成的生成器(generator)
for path,dir,file in os.walk(os.getcwd()):
    print(path)
    print(dir)
    print(file)
# 判断目录是否存在
print(os.path.exists(os.getcwd()))
# 判断给定路径是否是文件夹
print(os.path.isdir(os.getcwd()))
# 判断给定路径是否是文件
print(os.path.isfile(os.getcwd()))
# 创建文件夹
# Attention:
#   1|创建单层文件夹:os.mkdir
#   2|递归创建多层文件夹:os.makedirs
#   3|创建文件夹前需判断文件夹是否存在
path = os.getcwd() + '\\test\\test'
if os.path.exists(path):
    print('文件夹已存在')
else:
    os.makedirs(path)
    print('创建文件夹成功')
# 删除文件夹
# Attention:
#   1|只能删除空文件夹,非空文件夹会报错
path = os.getcwd() + '\\test\\test'
os.rmdir(path)
# 路径拼接
path = os.getcwd()
list = ['a.txt','b.doc','c.py']
for file in list:
    print(os.path.join(path,file))
# 路径拆分
# 返回元组,包含绝对路径和文件名两部分
path = r'g:\Project\Python\Module_Os\a.txt'
print(os.path.split(path))
# 仅返回绝对路径
print(os.path.dirname(path))
# 仅返回文件名
print(os.path.basename(path))
# 查看文件大小
path = r'g:\\Project\\Python\\Module_Os\\Module_Os.ipynb'
print(os.path.getsize(path))

实战演练

# 获取指定目录下大于100M的文件
def getfilesize(filepath,tollist):
    if os.path.isfile(filepath):
        if os.path.getsize(filepath)/1024/1024 > 100:# 更改文件大小,默认100M
            filelist = []
            filelist.append(filepath)
            filelist.append(round(os.path.getsize(filepath)/1024/1024,2))
            tollist.append(filelist)
    else:
        pass
        # msg = Exception(f'{filepath}文件路径有误')
        # raise msg

def getallfilepath(lidir,allfilepath):
    for i in os.listdir(lidir):
        try:
            if os.path.isdir(os.path.join(lidir,i)):
                getallfilepath(os.path.join(lidir,i),allfilepath)
            elif os.path.isfile(os.path.join(lidir,i)):
                allfilepath.append(os.path.join(lidir,i))
        except:
            pass

def takeSecond(ele):
    return ele[1]

def main():
    filelists = []
    tollist = []
    path = r'C:\Users' # 指定路径
    getallfilepath(path,filelists)
    for i in filelists:
        getfilesize(i,tollist)
    tollist.sort(key=takeSecond,reverse=True)
    print(tollist)

main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿的向往

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

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

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

打赏作者

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

抵扣说明:

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

余额充值