学习接口测试时,当我把配置文件xx.config和读取配置文件的模块read_config.py放在项目下的同一个包config里时,只需传入文件名xx.config即可实现对配置文件的读取. 但是当我在项目下另一个包里导入read_config.py后,再次传入要读取的配置文件名xx.config,却报错了!

  1. Traceback (most recent call last):
  2. File "C:\Users\wangyi\AppData\Local\Programs\Python\Python36\lib\configparser.py", line 1138, in _unify_values
  3. sectiondict = self._sections[section]
  4. KeyError: 'MOD'
  5.  
  6. During handling of the above exception, another exception occurred:
  7.  
  8. Traceback (most recent call last):
  9. File "C:/develop/lemon/tool/read_excel.py", line 88, in <module>
  10. button = ReadConfig().read_config('case.config','MOD','button')
  11. File "C:\develop\lemon\config\read_config.py", line 18, in read_config
  12. return cf.get(section,option)
  13. File "C:\Users\wangyi\AppData\Local\Programs\Python\Python36\lib\configparser.py", line 781, in get
  14. d = self._unify_values(section, vars)
  15. File "C:\Users\wangyi\AppData\Local\Programs\Python\Python36\lib\configparser.py", line 1141, in _unify_values
  16. raise NoSectionError(section)
  17. configparser.NoSectionError: No section: 'MOD'

纠结了半天,始终找不出错误原因,想去百度一下,但是心想这么简单的问题难道我都解决不了还要去百度?那岂不是太没面子了呀! 我打开酷狗,放一首古琴曲, 试着让自己静下来,但窗外马路上的汽车鸣笛声让我静不下来,  突然发现, 会不会是路径有问题?

read_config部分如下:

  1. class ReadConfig:
  2. def read_config(self,file_name,section,option):
  3. cf = configparser.ConfigParser()
  4. cf.read(file_name,encoding='utf-8')
  5. return cf.get(section,option)
  6.  
  7. if __name__ == '__main__':
  8. r = ReadConfig().read_config('case.config','MOD','button')
  9. print(r)

将寻找配置文件的路径改了一下,加了一行, 让你不管输入什么配置文件名都去config包里面去找:

  1. class ReadConfig:
  2. def read_config(self,file_name,section,option):
  3. file = os.path.abspath(os.path.join(os.getcwd(),'..','config',file_name))
  4. cf = configparser.ConfigParser()
  5. cf.read(file,encoding='utf-8')
  6. return cf.get(section,option)
  7.  
  8. if __name__ == '__main__':
  9. r = ReadConfig().read_config('case.config','MOD','button')
  10. print(r)

大功告成, 哈

configparser读取配置文件时的相对路径问题的更多相关文章

  1. python ConfigParser读取配置文件,及解决报错(去掉BOM)ConfigParser.MissingSectionHeaderError: File contains no section headers的方法

    先说一下在读取配置文件时报错的问题--ConfigParser.MissingSectionHeaderError: File contains no section headers 问题描述: 在练 ...

  2. python读取配置文件报keyerror-文件路径不正确导致的错误

    - 在其他模块使用反射读取配置文件报错,但是在反射模块中读取GetData.check_list又是正确的 反射模块如下: # get_data.py from API_AUTO.p2p_projec ...

  3. ServletContext 接口读取配置文件要注意的路径问题

    在建立一个maven项目时,我们通常把一些文件直接放在resource下面,在ServletContext中有getResource(String path)和getResourceAsStream( ...

  4. 记一次用python 的ConfigParser读取配置文件编码报错

    记一次用python 的ConfigParser读取配置文件编码报错 ...... raise MissingSectionHeaderError(fpname, lineno, line)Confi ...

  5. ConfigParser读取配置文件时报错:ConfigParser.MissingSectionHeaderError

    使用ConfigParser来读取配置文件,经常会发现经过记事本.notepad++修改后的配置文件读取时出现下面的问题: ConfigParser.MissingSectionHeaderError ...

  6. Python读取文件时输入文件绝对路径报错

    问题描述 读取本地文件,输入绝对路径时出错,显示数据被截断. 最开始以为是转译错误,因为eclipse会自动把\变成\\, pycharm这里没有,就手动改一下.结果还是不行. 根本原因 文件名出错了 ...

  7. python3使用configparser读取配置文件

    python2中的ConfigParser在python3中改成了configparser 1.配置文件格式是 [域名] k=v 2.代码示例:需要生成conf.ini配置文件如下:[config]v ...

  8. 转载:Java项目读取配置文件时,FileNotFoundException 系统找不到指定的文件,System.getProperty("user.dir")的理解

    唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException  系统找不到指定的文件,气死人啦. 还有就是:System.get ...

  9. Python利用ConfigParser读取配置文件

    http://www.2cto.com/kf/201108/100384.html #!/usr/bin/python # -*- coding:utf-8 -*- import ConfigPars ...

随机推荐

  1. 在 .NET Core 3.0 中支持 Newtonsoft.Json 的使用

    .NET Core 3.0 已经使用了一整套内置的 Josn 序列化/反序列化方案,而且看上去效率还不错.但对于某些项目必须使用到 Newtonsoft.Json 的时候,就会抛出如下异常: Syst ...

  2. C# List与Dictionary相互转换与高效查找

    TestModel类定义: public class TestModel{    public int Id { get; set; }    public string Name { get; se ...

  3. centos7上安装jdk1.8

    我这里是使用的jdk1.8:由于vmware上的字体太小,所以我使用xShell链接linux系统进行操作的. 准备工作:使用xftp链接linux系统:然后创建个包将linux版本的jdk上传上去: ...

  4. Lucene&Solr框架之第三篇

    1.SolrCore的配置 a)schma.xml文件 b)配置中文分析器 2.配置业务域和批量索引导入 a)配置业务域 b)批量索引导入 c)Solrj复杂查询(用Query页面复杂查询.用程序实现 ...

  5. SSM框架之SpringMVC(4)返回值类型及响应数据类型

    SpringMVC(4)返回值类型及响应数据类型 1. 返回值分类 1.1. 返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址. @RequestM ...

  6. JS---DOM---元素相关的操作方法

    1. 追加子元素 my$("dv").appendChild(obj); 2. 把新的子元素插入到第一个子元素的前面 my$("dv").insertBefor ...

  7. WordPress 文件下载漏洞

    Google dork:inurl:"/wp-content/themes/liberator/inc/php/download.php" exploit:https://www. ...

  8. 【漏洞预警】Redis 4.x/5.x 远程命令执行高危漏洞

    2019年7月09日,阿里云应急响应中心监测到有安全研究人员披露Redis 4.x/5.x 远程命令执行高危漏洞利用代码工具.针对未授权或弱口令的Redis服务,攻击者通过构造特定请求,成功利用漏洞可 ...

  9. Violet音乐社区 - 个人总结报告

    一.项目概述 1.1 项目背景 音乐是一门艺术,是由有组织的乐音来表达人们情感.反映人类现实生活情感的艺术.现代科技的发展使得人们可以利用网络随时随地的享受音乐,然而在当今互联网却很少有一个以音乐为媒 ...

  10. 【西北师大-2108Java】第十一次作业成绩汇总

    [西北师大-2108Java]第十一次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第13周学习指导及要求 实验目的与要求 (1)掌握事件处理的基本原理,理解其用途: (2)掌握AWT事件模型 ...