• Python3下获取文件路径方法以及相关的操作


    一. os.path.realpath(__file__) 文件的当前绝对路径(包含文件名)

    例子:
    path=os.path.realpath(__file__)
    print("os.path.realpath(__file__)方法的结果是:{0}".format(path))

    运行结果:

    二. os.path.dirname(__file__)文件的当前绝对路径(不包含文件名)

    例子:
    path2= os.path.dirname(__file__)
    print("os.path.dirname(__file__)方法的结果是:{0}".format(path2))


    运行结果:

    三. os.getcwd()执行文件的当前绝对路径(不包含文件名)

    例子:
    path3= os.getcwd()
    print("os.getcwd()方法的结果是:{0}".format(path3))
    运行结果:

    os.path.dirname(__file__):获取的是程序路径的文件/目录的名称(如果在程序本身位置则为空,否则一直指向程序的文件/目录路径)
    os.getcwd():获取的是当前(运行程序的文件)/目录路径(不管程序放在哪,你在哪运行都是获取此时的路径)


    四. os.path.abspath(__file__) 执行文件的当前绝对路径(不包含文件名)

    例子:
    path4=os.path.abspath(__file__) #获取程序的绝对路径
    print("os.path.abspath(__file__)方法的结果是:{0}".format(path4))

    运行结果:

    os.path.abspath() 和 os.path.realpath() 区别
    相同点:都能返回文件的绝对路径。

    不同点
    例子:
    file_a
    file_b -> file_a # 软连接指向a (在linux下可以指向某一个文件)

    五. sys.path.append(BASE_DIR) #把路径配到环境变量中
    sys.path是一个列表 list ,它里面包含了已经添加到系统的环境变量路径。
    当我们要添加自己的引用模块搜索目录时,可以通过列表 list 的 append()方法;
    例子:
    sys.path.append(BASE_DIR)

    六. os.path.dirname(__file__)多层嵌套 #把路径脱皮
    例子:

    结果:

     

    七. os.path.join(BASE_DIR,"report","excelReport","APITestCase.xlsx")#路径的拼接

    例子:

    import os,sys
    #基础路径
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    sys.path.append(BASE_DIR)

    # excel测试用例结果文件
    TARGET_FILE = os.path.join(BASE_DIR,"report","excelReport","APITestCase.xlsx")

    八. os.path.split('D:\czl_api_auto_test\database') #按照路径将文件名和路径分割开
    1.PATH指一个文件的全路径作为参数:
    2.如果给出的是一个目录和文件名,则输出路径和文件名
    3.如果给出的是一个目录名,则输出路径和为空文件名


    例子:

    file_name1 = os.path.split('D:\czl_api_auto_test\database\APITestCase.xlsx')
    print(file_name1)
    print("-----------划分线-------------")
    file_name2 = os.path.split('D:\czl_api_auto_test\database')
    print(file_name2)

    运行结果:

     

  • 相关阅读:
    Stanford NLP 课程笔记之计算字符串距离
    Stanford NLP 课堂笔记之正则表达式
    最长回文子串
    java面向对象
    java中数组的定义
    AtCoder Beginner Contest 100 C(思维)
    Codeforces 1000B Light It Up(思维)
    jq的链式调用.end();
    解决css中display:inline-block的兼容问题
    解决css中display:inline-block产生的空隙问题
  • 原文地址:https://www.cnblogs.com/tinghai8/p/16202232.html
Copyright © 2020-2023  润新知