• python专题知识追寻者对OS的理解


    一 前言

    OS(operating system)直接对操作系统进行操作的接口,功能真是非常强大;允许知识追寻者简要概括一下整体模块

    1. 如果要对文件进行读写可以使用os.open()方法
    2. 如果要对文件路径进行操作可以使用os.path模块
    3. 如果要对所有文件的所有行读取到命令行进行操作可以使用fileinput模块
    4. 如果要创建临时文件可以使用tempfile模块
    5. 如果要对高级文件或者目录进行处理可以使用shutil模块

    知识的体系很重要,比如很多书籍文章只知如何使用OS对路径进行操作,但整体的OS是什么,包含哪些模块都没有介绍。本文的重点是对path进行操作,参和一些os常用函数,结合之前文件操作的专题可以达到很好的效果;

    二 OS常用函数介绍

    函数名 函数说明
    os.getcwd() 返回工作目录
    os.path.abspath(path) 返回绝对路径
    os.path.basename(path) 返回基本名
    os.path.commonpath(paths) 返回所有路径中共同的最长的子路径
    os.path.commonprefix(list) 返回所有路径中共同的前缀
    os.path.dirname(path) 返回当前文件所在的目录
    os.path.exists(path) 判定目录是否存在,存在返回True, 否则False
    os.path.getatime(path) 返回上一次进入路径的时间
    os.path.getmtime(path) 返回上一次路径修改的时间
    os.path.getctime(path) unix返回元数据修改时间,windows返回路径创建时间
    os.path.getsize(path) 返回路径的大小,单位字节
    os.path.isabs(path) 判定是否是绝对路径,是返回True,否则False
    os.path.isfile(path) 判定是否是文件,是返回True,否则False
    os.path.isdir(path) 判定是否是目录,是返回True,否则False
    os.path.islink(path) 是否是链接文件,是返回True,否则False
    os.path.join(path, *paths) 路径拼接
    os.path.normcase(path) windows平台路径字母全部转为小写,如果存在斜杆会转为反斜杠
    os.path.relpath(path, start=os.curdir) 返回与start比较后的相对路径
    os.path.split(path) 以基本名为基准切割路径
    os.makedirs() 创建文件夹

    三 函数具体操作

    3.1 os.getcwd()

    获取当前工作目录

    # -*- coding: utf-8 -*-
    import os
    
    """ 获取当前工作 """
    print(os.getcwd())
    

    输出:

    C:python_workstudy_py_baseasefileopration
    

    3.2os.path.abspath(path)

    返回绝对路径,. 号表示当前目录

    # -*- coding: utf-8 -*-
    import os
    
    """ 返回绝对路径 """
    print(os.path.abspath("."))
    

    输出:

    C:python_workstudy_py_baseasefileopration
    

    3.3 os.path.basename(path)

    返回基本名,基本名也就是文件的简单名称比如 zszxz.txt;

    # -*- coding: utf-8 -*-
    import os
    """返回基本名"""
    
    print(os.path.basename("C:python_workstudy_py_baseasefileoprationos_op.py"))
    

    输出:

    os_op.py
    

    3.4os.path.commonpath(paths)

    返回共同的路径,最大长度返回;

    # -*- coding: utf-8 -*-
    import os
    
    """ 返回共同的路径 """
    print(os.path.commonpath(['/usr/var/lib','/usr/lib']))
    

    返回结果:

    usr
    

    3.5os.path.commonprefix(list)

    返回路径的共同前缀。注意,前缀跟3.4节的共同路径是不同的东西;

    # -*- coding: utf-8 -*-
    import os
    
    """ 返回路径共同前缀  """
    print(os.path.commonprefix(['/usr/var/lib','/usr/lib']))
    

    返回结果:

    /usr/
    

    3.6 os.path.dirname(path)

    返回目录,lib的目录是/usr/var

    # -*- coding: utf-8 -*-
    import os
    
    """ 返回目录 """
    print(os.path.dirname('/usr/var/lib'))
    

    输出:

    /usr/var
    

    3.7 os.path.exists(path)

    判定目录是否存在,存在返回True, 否则False

    # -*- coding: utf-8 -*-
    import os
    
    """判定路径是否存在"""
    print(os.path.exists('/usr/var/lib'))
    print(os.path.exists('C:python_work'))
    

    输出:

    False
    True
    

    3.8 os.path.getatime(path)

    返回上一次进入路径的时间

    # -*- coding: utf-8 -*-
    import os
    
    print(os.path.getatime('C:python_work'))
    

    输出:

    1578921313.4634616
    

    3.9 os.path.getmtime(path)

    返回上一次路径修改的时间

    # -*- coding: utf-8 -*-
    import os
    
    """返回上一次路径修改的时间"""
    print(os.path.getmtime('C:python_work'))
    

    输出:

    1578921313.4634616
    

    3.10 os.path.getctime(path)

    unix返回元数据修改时间,windows返回路径创建时间

    # -*- coding: utf-8 -*-
    import os
    
    """unix返回元数据修改时间,windows返回路径创建时间"""
    print(os.path.getctime('C:python_work'))
    

    输出:

    1577777602.8199444
    

    3.11 os.path.getsize(path)

    返回路径的大小,单位字节;

    # -*- coding: utf-8 -*-
    import os
    
    """返回路径的大小,单位字节;"""
    print(os.path.getsize('.'))
    

    输出:

    4096
    

    3.12 os.path.isabs(path)

    判定是否是绝对路径,是返回True,否则False

    # -*- coding: utf-8 -*-
    import os
    
    """ 判定是否是绝对路径"""
    print(os.path.isabs('.'))
    print(os.path.isabs('C:python_work'))
    

    输出:

    False
    True
    

    3.13 os.path.isfile(path)

    判定是否是文件,是返回True,否则False

    # -*- coding: utf-8 -*-
    import os
    
    """ 判定是否是文件 """
    print(os.path.isfile('os_op.py'))
    print(os.path.isfile('.'))
    

    输出

    True
    False
    

    3.14 os.path.isdir(path)

    判定是否是目录,是返回True,否则False

    # -*- coding: utf-8 -*-
    import os
    print(os.path.isdir('os_op.py'))
    print(os.path.isdir('.'))
    

    输出:

    False
    True
    

    3.15 os.path.islink(path)

    是否是链接文件,是返回True,否则False, 需要被python运行时环境所支持,否则会一直返回False

    # -*- coding: utf-8 -*-
    import os
    
    """是否是链接文件"""
    print(os.path.islink('os_op.py'))
    

    3.16 os.path.join(path, *paths)

    路径拼接

    # -*- coding: utf-8 -*-
    import os
    
    print(os.path.join('usr', 'local','bin'))
    

    输出

    usrlocalin
    

    3.17 os.path.normcase(path)

    windows平台路径字母全部转为小写,如果存在斜杆会转为反斜杠,其它平台不改变

    # -*- coding: utf-8 -*-
    import os
    print(os.path.normcase('/USR/Local/bin'))
    

    输出:

    usrlocalin
    

    3.18 os.path.relpath(path, start=os.curdir)

    返回与start比较后的相对路径

    # -*- coding: utf-8 -*-
    import os
    print(os.path.relpath('C:python_work', 'C:\'))
    

    输出

    python_work
    

    3.19 os.path.split(path)

    以基本名为基准切割路径

    # -*- coding: utf-8 -*-
    import os
    print(os.path.split('C:python_workstudy_py_baseasefileoprationos_op.py'))
    

    输出

    ('C:\python_work\study_py_basex08asex0cileopration', 'os_op.py')
    

    3.20 os.makedirs()

    创建文件夹

    os.makedirs('C:mydatageneratorpy')
    
  • 相关阅读:
    loadrunner 录制login(关联 参数化 检查点)
    nmon安装(转)
    理解Load Average做好压力测试
    内存泄漏
    上下文切换
    Jmeter 多台机器产生负载
    Java jvm 原理
    【转】HTML-based script和URL-based script两种脚本录制方式
    cookie模拟
    startUML破解方式
  • 原文地址:https://www.cnblogs.com/zszxz/p/12231458.html
Copyright © 2020-2023  润新知