• Python学习之路(十五):基础知识之os模块


    os模块与操作系统打交道

    1.文件夹相关

    1 os.makedirs('dir1/dir2') # 创建多级目录
    2 os.removedirs('dir1/dir2') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    3 os.mkdir('dir3')  # 创建单级目录
    4 os.rmdir('dir3')  # 删除单级空目录,若目录不为空则无法删除,报错
    5 print(os.listdir(r'D:untitled2day 13'))  # 列出路径下的所有文件夹

    2.执行系统命令

    1 os.system('dir')  #执行操作系统的命令,没有返回值,适合做实际的操作,如删除文件
    2 exec/eval执行的是字符串类型的代码
    3 os.system()和os.popen执行的是字符串类型的命令行代码
    4 
    5 程序要处理这些路径
    6 ret = os.popen('dir')
    7 s = ret.read()
    8 print(s.split('
    '))

    3.工作路径

    1 打印当前工作目录
    2 print(os.getcwd())  # current work dir当前工作目录
    3 
    4 切换当前工作目录
    5 os.chdir('D:untitled2day14')
     1 # 把路径中不符合规范的斜杠改成适合当前操作系统的斜杆
     2 path = os.path.abspath(r'D:/untitled2/day14/os模块.py')
     3 print(path)
     4 # 能够将给出的相对路径改成绝对路径
     5 path = os.path.abspath('os模块.py')
     6 print(path)
     7 # 切分路径,将路径中最后一个与其他分割开
     8 path = os.path.split('D:/untitled2/day14/os模块.py')
     9 print(path)
    10 
    11 # 分开取文件名和文件夹
    12 ret1 = os.path.dirname('D:/untitled2/day14/os模块.py')
    13 ret2 = os.path.basename('D:/untitled2/day14/os模块.py')
    14 print(ret1)
    15 print(ret2)
    16 
    17 # 判断路径是否存在
    18 res = os.path.exists('D:/untitled2/day14/os模块.py')
    19 print(res)
    20 
    21 # 判断是否为文件夹:
    22 
    23 print(os.path.isdir('D:/untitled2/day14'))
    24 
    25 # 判断是否为文件
    26 print(os.path.isfile('D:/untitled2/day14/os模块.py'))
    27 
    28 # 查看文件大小
    29 size = os.path.getsize('D:/untitled2/day14/os模块.py')
    30 print(size)

     4.os模块实战

     1 # 打印文件夹中所有文件的大小
     2 def func(path):
     3     size_sum = 0
     4     name_list = os.listdir(path)
     5     for name in name_list:
     6         path_abs = os.path.join(path, name)
     7         if os.path.isdir(path_abs):
     8             size = func(path_abs)  # 如果是文件夹,将文件夹内文件的大小计算完毕后,将值返回到这里,而不是最后的返回值
     9             size_sum += size
    10         else:
    11             size_sum += os.path.getsize(path_abs)
    12     return size_sum
    13 
    14 
    15 ret = func(r'D:untitled2')
    16 print(ret)
     1 # 循环方法打印文件夹中所有文件大小
     2 lst = [r'D:untitled2']
     3 size_sum = 0
     4 while lst:
     5     path = lst.pop()  # 将路径从列表中取出来
     6     path_list = os.listdir(path)
     7     for name in path_list:
     8         abs_path = os.path.join(path, name)
     9         if os.path.isdir(abs_path):
    10             lst.append(abs_path)  # 如果判断路径是文件夹,将文件夹路径添加到列表中,添加的路劲先进后出,最早添加的最后调用
    11         else:
    12             size_sum += os.path.getsize(abs_path)
    13 print(size_sum)
  • 相关阅读:
    Hbase的数据目录更换后server is not running yet报错
    挂载新加4T硬盘到home目录
    Hadoop(二)--Hadoop运行模式
    Hadoop(一)--Hadoop框架介绍
    KubeSphere(四)--Devops工程pipeline
    KubeSphere(三)--示例:安装wordpress到k8s
    KubeSphere(二)--多租户管理权限控制
    KubeSphere(一)--基于k8s安装KubeSphere
    com.alibaba.fastjson.JSON.toJSONString使用时值为NULL的属性被忽略的问题
    数据库命令-实战
  • 原文地址:https://www.cnblogs.com/Studying-Du/p/12371796.html
Copyright © 2020-2023  润新知