os

os

os模块介绍

  • 和操作系统相关的功能被封装在os模块
  • os模块不受平台限制,因为Python是平台无关的,而获取当前路径Windows和Linux是不同的,所以Python的os模块作为中间层,在Windows平台通过os导入nt模块(Windows是nt架构),在linux通过os导入posix模块

删除相关

  • removedirs()若目录为空则删除,并递归到上一级目录,如若也为空,则删除,依次类推((删除的文件回收站没有))

    os.removedirs(r'E:\xiaoxiannv\aa\hh')
    
  • rmdir()删除一个指定空目录,若不是空目录则报错

    os.rmdir(r'E:\xiaoxiannv\aa\hhh')
    
  • remove()删除文件,不能删除文件夹

    os.remove(r'E:\xiaoxiannv\aa\kk\uu.py')
    
  • rmtree()删除带内容的目录

    import shutil
    shutil.rmtree('ll')
    

查看相关

  • os.walk方法,主要用来遍历一个目录内各个子目录和子文件。(返回的是生成器)
    • 返回的是元组,元组中包含(dirpath, dirnames, filenames)
    • 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
s=os.walk(r'E:\xiaoxiannv', topdown=True, onerror=None, followlinks=False)
for a,b,c in s:
    # print(c)
    #将路径和文件名拼接起来
    for i in c:
        path = os.path.join(a, i)  #
        print(path)
  • os.name 显示当前使用的平台
print(os.name)
nt 是windows系统
posix 是Linux系统
  • help()查看os模块帮助文档
# help()查看os模块帮助文档
print(help(os))
  • getcwd()查看当前所在目录chdir()切换指定路径
# getcwd()查看当前所在目录(路径)
print(os.getcwd())
# 切换目录(路径)
os.chdir(r'E:\xiaoxiannv\aa\kk')
print(os.getcwd())

#得
# E:\xiaoxiannv\aa
# E:\xiaoxiannv\aa\kk
  • curdir获取当前目录 pardir获取当前目录的父目录
# 获取当前目录
print(os.curdir)
# 获取当前目录的父目录
print(os.pardir)
# 得:. ..
  • listdir() 显示指定目录下所有文件,包括隐藏文件
print(os.listdir(r'E:\xiaoxiannv'))
  • stat()获取文件目录信息,并可以获取到文件的大小
print(os.stat(r'E:\xiaoxiannv\aa\cc.py'))

得:
os.stat_result(st_mode=33206, st_ino=114841790497964433, st_dev=2594564338, st_nlink=1, st_uid=0, st_gid=0, st_size=3585, st_atime=1618717691, st_mtime=1618717691, st_ctime=1617458016)
  • os.environ 获取操作系统的环境变量
print(os.environ)

创建修改相关

  • os.rename() 重命名文件
print(os.rename('cc.py','pp.py'))
  • makedirs()生成一个多层递归目录
os.makedirs(r'E:\xiaoxiannv\aa\hh')
  • mkdir() 创建一个目录
os.mkdir('../aa/kk/oo')
  • getcwd()查看当前所在目录(路径)chdir()切换指定路径
# getcwd()查看当前所在目录(路径)
print(os.getcwd())
# 切换目录(路径)
os.chdir(r'E:\xiaoxiannv\aa\kk')
print(os.getcwd())

#得
# E:\xiaoxiannv\aa
# E:\xiaoxiannv\aa\kk

路径相关操作

  • os.path.split() 将path分割成目录和文件名,以元组的形式返回

    print(os.path.split(r'E:\xiaoxiannv\aa.py'))
    # 得('E:\\xiaoxiannv', 'aa.py')
    
  • os.path.abspath() 返回路径规范化的绝对路径

    print(os.path.abspath('cc.py'))
    # 得E:\xiaoxiannv\aa\cc.py
    
  • os.path.dirname() 返回path的目录

    print(os.path.dirname(r'E:\xiaoxiannv\aa\cc.py'))
    # 得 E:\xiaoxiannv\aa
    
  • os.path.basename()返回path最后的文件名

    print(os.path.basename(r'E:\xiaoxiannv\aa\cc.py'))
    # 得:cc.py
    
  • os.path.exists()判断路径是否存在,如果存在返回True,如果不存在返回Flase

    print(os.path.exists(r'E:\xiaoxiannv\aa\cc.py'))
    
  • os.path.isabs()判断路径是否是绝对路径,如果是返回True,如果不是返回Flase

    print(os.path.isabs(r'E:\xiaoxiannv\aa\cc.py'))
    
  • os.path.isfile()判断是否是一个文件,如果是返回True,否则返回Flase

    print(os.path.isfile(r'E:\xiaoxiannv\aa\cc.py'))
    
  • os.path.isdir()判断是否是一个存在的目录

    print(os.path.isdir(r'E:\xiaoxiannv\aa'))
    
  • os.path.join() 拼接路径和文件名

    print(os.path.join(r'E:\xiaoxiannv\aa','cc.py'))
    
  • os.path.getatime()返回path所指向的文件或者目录的最后存取时间

    print(os.path.getatime(r'E:\xiaoxiannv\aa\cc.py'))
    
  • os.path.getmtime()返回路径所指向的文件或者目录的最后修改时间

    print(os.path.getmtime(r'E:\xiaoxiannv\aa\cc.py'))
    
  • os.path.getsize()获取文件大小

    print(os.path.getsize(r'E:\xiaoxiannv'))
    
posted @ 2021-06-04 18:48  刘家小仙女  阅读(537)  评论(0编辑  收藏  举报