UI自动化

2017/07/11 Python:os.path模块

2017-07-11  本文已影响69人  子不语的花未眠

抛出问题:

当我们部署我们的代码的时候,会遇到一种情况,之前在配置文件中所有的文件路径都写成了绝对路径,基于你个人笔记本操作系统的用户路径,这样的话,当更换了其他电脑的时候,这个路径是无法复用的,所以产生了一个想法,利用os.path模块获取当前文件所处的父目录的绝对路径(其实就是你项目根目录的绝对路径),然后在配置文件中只需要写每个需要用到的模块的相对路径即可,然后把父目录的绝对路径和各模块的相对路径做一次拼接,这样就可以实现上述问题的解决了~

config_file_path = os.path.split(os.path.realpath(__file__))[0]    # 1:获取当前文件所处文件夹的绝对路径

config_file_path = os.path.dirname(os.path.dirname(__file__))  #2:当前文件父目录的绝对路径

config_file_path = os.path.dirname(os.path.realpath(__file__))  #3:当前文件所处文件夹的绝对路径,等同于第1种写法

例子1:

import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) #获取当前文件夹的父目录绝对路径

print(BASE_DIR)

file_path = os.path.join(BASE_DIR,'C','Test_Data') #获取C文件夹中的的Test_Data文件

例子2:

class GlobalParam():

def __init__(self,folder,file):

self.BASE_DIR = os.path.dirname(os.path.dirname(__file__))  #获取当前文件夹的父目录绝对路径

self.file_path = os.path.join(self.BASE_DIR,folder,file)  #获取config文件夹中的的path_file.conf文件————截图和日志配置文件路径

def getParam(self,path_Section,path_NO):

#创建读取配置文件的对象

cf1 = Config(self.file_path)

path = cf1.get_PATH(path_Section,path_NO)

path = self.BASE_DIR + path #将父目录和配置文件读取的相对路径拼接

return path

附上上面的Conifg模块写法:

import configparser

class Config:

def __init__(self,configPath):

self.configPath = configPath

def get_PATH(self,path_Section,path_NO):

cf = configparser.ConfigParser()

cf.read(self.configPath)

# path_section填写"PATH_YUNKU"

# 此处path_config = "path_001"以此类推

path = cf.get(path_Section,path_NO)

return path

上一篇 下一篇

猜你喜欢

热点阅读