您现在的位置是:门户> 编程语言> Python

python os用法总结
2021-10-22 36人围观 0条评论
简介本篇文章给大家分享了关于python os用法的相关总结性内容,对此有学习需要朋友参考下吧。

    前言:在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块,所以今天整理下比较常用的几个方法。网上这方面资料也很多,每次整理,只是对自己所学的知识进行梳理,从而加深对某个模块的使用。

    那我们看看他们的使用吧:

    获取文件所在路径

    import os
    os.path.dirname(__file__) 获取当前文件的所在路径

    输入:

    import os
    from reptile import *
    print(os.path.dirname(__file__))

    输出:

    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:/Python/pag

    1-1.print (os.path.dirname(os.path.dirname(__file__))) 获取当前文件的所在目录的上级路径

    输入:

    import os
    from reptile import *
    print(os.path.dirname(os.path.dirname(__file__)))

    输出:

    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:/Python

    1-2.print (os.path.dirname(os.path.dirname(os.path.dirname(__file__)))) 获取当前文件的所在目录的上级目录的上级路径

    输入:

    import os
    from reptile import *
    print (os.path.dirname(os.path.dirname(os.path.dirname(__file__))))

    输出:

    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:/

    2.os.getcwd()――得到当前工作的目录。

    输入:
    print (os.getcwd())

    输出:
    F:\Python\pag

    3.os.name()――判断现在正在实用的平台,Windows 返回 ‘nt‘; Linux 返回'posix‘

    4,os.listdir()――指定所有目录下所有的文件和目录名。

    输入:
    print (os.listdir())
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    ['CRVanguard.py', 'dict_usage.py', 'establish_review.py', 'invoketestcase.py', '__init__.py', '__pycache__']
    #以列表的形式全部列举出来,其中没有区分目录和文件。

    5.os.remove()――删除指定文件

    输入:
    print (os.remove('E:\python-3.2.3.amd64.msi'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    None

    6. os.rmdir()――删除指定目录

    7. os.mkdir()――创建目录注意:这样只能建立一层,

    8.os.makedirs()――递归建立目录

    9.os.path.isfile()――判断指定对象是否为文件。是返回True,否则False

    10.os.path.isdir()――判断指定对象是否为目录。是True,否则False

    输入:
    print (os.path.isdir('lib'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    False

    11.os.path.exists()――检验指定的对象是否存在。是True,否则False.例:

    输入:
    print (os.path.exists('./lib'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    False

    12.os.path.split()――返回路径的目录和文件名。

    输入:
    print (os.path.split('E:\requests-2.18.4.tar.gz.asc'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    ('E:', '\requests-2.18.4.tar.gz.asc')

    此处只是把前后两部分分开而已。就是找最后一个‘/‘。看例子:

    输入:
    print (os.path.split('E:\ '))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    ('E:\\', ' ')

    13.os.system()――执行shell命令。例:

    var=123
    os.environ[‘var‘]=str(var) //注意此处[]内得是 “字符串”
    os.system(‘echo $var‘)

    14. os.chdir()――改变目录到指定目录

    输入:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os, sys
    
    path = "/tmp"
    
    # 查看当前工作目录
    retval = os.getcwd()
    print "当前工作目录为 %s" % retval
    
    # 修改当前工作目录
    os.chdir( path )
    
    # 查看修改后的工作目录
    retval = os.getcwd()
    
    print "目录修改成功 %s" % retval
    
    输出:
    当前工作目录为 /www
    目录修改成功 /tmp

    15.os.path.getsize()――获得文件的大小,如果为目录,返回0

    输入:
    print (os.path.getsize('F:\QCExplorer.ini'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    456

    16.os.path.abspath()――获得绝对路径。

    输入:
    print (os.path.abspath('.'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:\Python\pag

    17.os.path.join(path, name)――连接目录和文件名。

    输入:
    print (os.path.join('F:\ ','lavu.exl'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:\ \lavu.exl

    18.os.path.basename(path)――返回文件名

    输入:
    print (os.path.basename('F:\QCExplorer.ini'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    QCExplorer.ini

    19.os.path.dirname(path)――返回文件路径

    输入:
    print (os.path.dirname('F:\QCExplorer.ini'))
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:\

    20.获得当前程序所在的实际目录

    输入:
    import os
    import sys
    
    if __name__ == "__main__":
     print os.path.realpath(sys.argv[0])
     print os.path.split(os.path.realpath(sys.argv[0]))
     print os.path.split(os.path.realpath(sys.argv[0]))[0]
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    F:\Python\pag\dict_usage.py
    ('F:\\Python\\pag', 'dict_usage.py')
    F:\Python\pag

    重点:用法

    ♦在Python 的os 模块中提供了system()用来执行系统命令。

    比如我们要执行E:\\test_object\\目录

    下的all_test.py 文件,可以这样来实现:

    #coding=utf-8
    import os
    os.system(‘E:\\test_object\\all_test.py‘)
    
    或者
    
    import os
    os.chdir("E:\\test_object")
    os.system(‘Python all_test.py‘)

    ♦组合用法:

    • 通过os.listdir()可以获取目录下的所有文件
    • 通过os.path.getmtime(path) #返回在此path下最后一次修改的时间
    • 通过os.path.join(path, name)连接目录和文件名
    输入:
    result_dir = ('F:\\')
    lists=os.listdir(result_dir)
    #重新按时间对目录下的文件进行排列
    lists.sort(key=lambda fn: os.path.getmtime(result_dir+"\\"+fn))
    print ('最新的文件为: ' + lists[-1])
    file = os.path.join(result_dir,lists[-1])
    print(file)
    输出:
    F:\Python\python.exe F:/Python/pag/dict_usage.py
    最新的文件为: 我以月夜寄相思.txt
    F:\我以月夜寄相思.txt
    
    Process finished with exit code 0

    这样我们既可以找到最后一个被修改的文件是啥了。

分享:

文章评论

    • wxpython 学习笔记 第一天
    • python文本数据处理学习笔记详解