Python os模块

os模块是Python解释器自带模块,直接在脚本或命令行执行import os后即可使用。osos.path使用频率较高,掌握基本用法有助于提高我们的工作效率。

与操作系统相关用户

  • os.name返回当前操作系统的类型

    import os
    print(os.name)
    # 输出结果:
    # nt表示为Windows系统,posix表示为Linux系统
  • os.sep返回当前系统的路径分割符

    import os
    print(os.sep)
    # 输出结果:
    # Windows输出\\,Linux输出/
  • os.linesep返回换行符

    import os
    print(os.linesep)
    # 输出结果:
    # Windows输出\r\n,Linux输出\n
  • os.pathsep返回环境变量中路径分隔符

    import os
    print(os.pathsep)
    # 输出结果:
    # Windows输出;,Linux输出:
  • os.environ返回系统的所有环境变量

    import os
    print(os.environ)
  • os.getenv('PATH')返回指定的环境变量的值

    import os
    print(os.getenv('PATH'))

与目录相关的操作

  • os.listdir('目录路径')返回指定目录下的所有目录名,以列表形式返回

    import os
    # Linux
    print(os.listdir('/'))
    # windows
    print(os.listdir('D:\\'))
    print(os.listdir('D:/'))
  • os.stat('路径')返回指定路径的信息,这个路径可以是目录,也可以是文件

    import os
    print(os.stat('go/src/gorobbs/log/gin.log'))
    print(os.stat('go/src/gorobbs/log'))
  • os.mkdir('目录路径')创建目录,前提是除要创建的目录外,其他路径已经存在

    import os
    os.mkdir('go/src/test0') # 已知go/src路径存在
    os.mkdir('go/src/test1/hello') # 由于go/src/test1路径不存在,所以会报错
    #Traceback (most recent call last):
    #  File "<stdin>", line 1, in <module>
    #FileNotFoundError: [Errno 2] No such file or directory: 'go/src/test1/hello' 
  • os.makedirs('目录路径') 递归创建目录

    import os
    os.makedirs('go/src/test1/hello')
  • os.rmdir('目录路径')删除单个目录

    import os
    os.rmdir('go/src/test1/hello') # 只删除hello目录
  • os.removedirs('目录路径')递归删除目录

    import os
    # 假如test1下还有其他文件或目录,只会把hello删除。
    # 如果没有,但是src下有其他目录和文件,仅删除test1/hello
    os.removedirs('go/src/test1/hello') 
  • os.getcwd()获取当前的工作目录,返回值为路径

    import os
    print(os.getcwd())
  • os.chdir('目录路径')切换目录

    import os
    os.chdir('/home')
    print(os.getcwd())
    os.chdir('/root')
    print(os.getcwd())
  • os.curdir返回当前目录,输出结果往往是个'.'
  • os.pardir返回当前目录的父目录,输出结果是两个'..'

os.path子模块

  • os.path.abspath()返回绝对路径

    import os
    print(os.path.abspath('loginDG.py'))
    print(os.path.abspath(os.curdir))
    # 输出结果:
    D:\python_project\Demo1\loginDG.py
    D:\python_project\Demo1
  • os.path.split()分割一个路径,以最后一个路径分隔符分割

    import os
    fpath = os.path.abspath('loginDG.py')
    print(os.path.split(fpath))
    fpath = os.path.abspath(os.curdir)
    print(os.path.split(fpath))
    # 输出结果:
    ('D:\\python_project\\Demo1', 'loginDG.py')
    ('D:\\python_project', 'Demo1')
  • os.path.dirname('路径')返回一个路径,更为贴切的说法应该是os.path.split()返回结果的第一部分

    import os
    print(__file__) # D:/python_project/Demo1/decretor1.py
    print(os.path.dirname(__file__))  # D:/python_project/Demo1
    print(os.path.dirname('test/12')) # test
  • os.path.basename('路径')返回一个文件名,更为贴切的说法应该是os.path.split()返回结果的第二部分

    import os
    print(__file__) # D:/python_project/Demo1/decretor1.py
    print(os.path.basename(__file__)) # decretor1.py
    print(os.path.basename('test/12/34')) # 34
  • os.path.join('路径1', '路径2') 路径拼接

    import os
    print(os.path.join('D:\\python_project\\Demo1','test')) # D:\python_project\Demo1\test
  • os.path.getatime('路径') 返回指向的文件或目录最后的存取时间
  • os.path.getmtime('路径') 返回指向的文件或目录最后的修改时间

    import os
    print(os.path.getctime(__file__)) 
    print(os.path.getatime(__file__))
    print(os.path.getmtime(__file__))
    
    # 输出结果:
    1661329588.0645409
    1662285011.1052496
    1662285011.1052496

标签: none

添加新评论