zoukankan      html  css  js  c++  java
  • python获取文件路径及小坑

    python获取文件路径

    一、使用:在框架搭建中,需要获取配置文件所在的路径等

    def file_oper():
      path = os.getcwd()+ '\pickle.txt' # 返回当前工作目录
      path2 = os.path.abspath(r'C:\Users\viruser.v-desktop\PycharmProjects\hexin\practice\pickle.txt') # 除非写入绝对路径,否则返回当前工作路径/拼接路径
      path3 = os.path.dirname(r'C:\Users\viruser.v-desktop\PycharmProjects\hexin\practice\pickle.txt') # 返回路径的目录 (上一层)
      path4 = os.path.abspath(__file__) # 返回当前文件的路径
      print('{0}\n {1}\n {2}\n{3}'.format(path,path2,path3,path4))
       
      》》》 >>>
    C:\Users\viruser.v-desktop\PycharmProjects\hexin\practice\pickle.txt
    C:\Users\viruser.v-desktop\PycharmProjects\hexin\practice\pickle.txt
    C:\Users\viruser.v-desktop\PycharmProjects\hexin\practice
    C:\Users\viruser.v-desktop\PycharmProjects\hexin\practice\practice_9.6.py

    二、搭建框架时遇到的小坑

    getcwd():是返回当前工作路径,即调用运行的文件路经

    abspath('./byy.py')路径的计算是以程序运行的当前目录来进行计算的,或者说abspath只是字符串拼接,并非从文件本身属性进行获取

    例:

    1、文件目录结构:

    2、common_FileRead.py文件

    common_FileRead.py中编写读取文件common_path.yml并返回common_path.yml的内容

    def get_path(file_name):
    
    
        yaml_path = os.path.abspath('./common_path.yml')  # 获取yml文件的路径 ,本意以当前文件计算

    # abspath/getcwd均是通过字符串拼接,即从程序运行的当前目录进行计算,即从调用文件business_common.py开始计算路径,导致路径错误,找不到文件
      yaml_file = open(yaml_path, encoding='utf-8') datas = yaml.load(yaml_file, Loader=yaml.FullLoader) path = datas[file_name] return path 

    3、business_common.py

    获取get_path(file_name)返回值

        def hx_login():
            basewindow = BaseWindow()
            """
            登录行情
            :return: 
            """
            # 启动行情客户端
            
            client_path = get_path('client_path')
            print(client_path)
            
    Business_Common.hx_login()
    运行报错:
    
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\viruser.v-desktop\\PycharmProjects\\PC_UiAutomation\\Business\\common_path.yml'

    报错原因:

     yaml_path = os.path.abspath('./common_path.yml')是从程序运行的当前目录进行计算,即从business_common.py开始计算路径,导致路径错误,找不到文件

     

    修改:因此需获取本文件绝对路径,再进行拼接

    root_path = os.path.dirname(os.path.dirname(__file__))
    common_path = os.path.join(root_path, 'Common\common_path.yml')

     

  • 相关阅读:
    对javascript的一点点认识总结——《javascript高级程序设计》读书笔记
    .Net Garbage Collection学习心得
    上网本重装系统的历程
    让验证控件进行分组验证
    .net应用程序分层的个人认识
    asp.net 4.0的变化(官网链接地址)
    SQL 延时 插入 修改 删除
    SQL 删除前100条 with as
    jQuery RadioButtonList
    网站推广的100个方法
  • 原文地址:https://www.cnblogs.com/byy521/p/15563842.html
Copyright © 2011-2022 走看看