python读取配置文件失败原因_python读取配置文件报keyerror-文件路径不正确导致的错误...

- 在其他模块使用反射读取配置文件报错,但是在反射模块中读取GetData.check_list又是正确的

8d3a3101cf3dd0f356fb118a0d808ebe.png

反射模块如下:

# get_data.py

from API_AUTO.p2p_project_7.tools import project_path

import pandas as pd

from API_AUTO.p2p_project_7.tools.read_config import ReadConfig

class GetData:

Cookie = None

LoanId = None

check_list = eval(ReadConfig.get_config(project_path.case_config_path, "CHECK_LEAVE_AMOUNT", "check_list"))

AddTel = pd.read_excel(project_path.test_case_path, sheet_name="init").iloc[0, 0]

NormalTel = pd.read_excel(project_path.test_case_path, sheet_name="init").iloc[1, 0]

AdminTel = pd.read_excel(project_path.test_case_path, sheet_name="init").iloc[2, 0]

LoanMemberId = pd.read_excel(project_path.test_case_path, sheet_name="init").iloc[3, 0]

MemberID = pd.read_excel(project_path.test_case_path, sheet_name="init").iloc[4, 0]

print(GetData.AdminTel)

print(GetData.check_list)

# df = pd.read_excel(project_path.test_case_path, sheet_name="phone")

# print(df.iloc[0, 0]) # 获取phone表单中的A1单元格的值

- 方法1:不使用反射,直接导入读取配置文件模块,直接读取

import configparser

"""

通过读取配置文件,来执行相应的测试用例

配置文件分为2个部分

第一部分:[SECTION],必须使用[]

第二部分:option=value 键值对形式存储

"""

cf = configparser.ConfigParser()

# 打开配置文件,传入文件名和编码格式

cf.read("case.config", encoding="utf-8")

# 方法1取值

# 读取配置文件的数据,传入section和option的值

# res_1 = cf.get("MODE", "mode")

# print(res_1)

# 方法2取值,类似字典

# res_2 = cf["MODE"]["mode"]

# print(res_2)

# 读取所有SECTION,结果是列表

# print(cf.sections(), type(cf.sections()))

# 读取某一分区下的数据,结果是列表,section中的键值对放在了元组中

# print(cf.items("DREAM"))

# 配置文件中的value,无论是数字还是列表或其他类型,读取出来后都是字符串类型

# 通过eval去掉引号,转换为原来的数据

age = cf.get("PERSON", "age")

print(age, type(age))

name = cf["PERSON"]["name"]

print(name, type(name))

favorite = cf.get("PERSON", "favorite")

print(favorite, type(favorite))

- 结果:仍然报错,原因是执行了引用模块中的代码

8c0fa008340edefe42319a0ed78f9491.png

959680aff4ba86037b732bd960eb32e0.png

- 将上述代码注释掉就可以正常执行了

方法2:找到出错原因,进行修改

使用反射出错的原因是反射中有读取配置文件的代码,读取配置文件时要有文件的路径,在project_path中读取目录时没有使用绝对路径导致在其他模块引用反射时出错了,改成通过 os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]   获取路径就OK了

7ec54299c92d9af0d0b7b50a53cee99b.png

原文:https://www.cnblogs.com/come202011/p/12236671.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356869.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

备忘录设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 ! 目录 …

打印机一直显示正在删除不掉怎么办?

1、停止打印服务,按WinR键打开运行对话框,然后输入“services.msc ” 打开任务管理。 找到“Print Spooler”,先停止该服务。 按WinR键打开运行对话框,然后输入“Spool” 回车打开“spool” 文件夹,打开“PRINTERS”文…

java 并发 面试_Java 并发基础常见面试题总结

1. 什么是线程和进程?1.1. 何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM…

javafx动画_JavaFX:创建Sprite动画

javafx动画到目前为止,尽管我的大多数文章都涉及JavaFX属性和绑定,但是今天我想写一讲我也致力于JavaFX运行时的另一部分:动画API。 在本文中,我将解释如何在JavaFX中编写自定义动画,以及如何使用这种方法为Sprite动画…

FZU Problem 2238 Daxia Wzc's problem

Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得到新数列A(1); 然后让Daxia求出数列A(1)前n项和,得到新数列A(2); 接着让Daxia求出数列A(2)前n项和,得到新…

生成器设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因,并了解何时以及如何应用模式中的每一个。 在这里查看 ! 目录 …

【转】从 ArcGIS for Desktop 发布地图服务

原文链接:http://resources.arcgis.com/zh-CN/help/tutorials/01z300000007000000.htm 本教程的目的是将地图服务直接从 ArcGIS for Desktop 发布到 ArcGIS for Server 中。本教程与名为“在 ArcMap 中准备您的 Web 地图”的上一教程类似,需要使用 ArcGI…

java 模块化osgi_OSGi简介–模块化Java

java 模块化osgiOSGi联盟是这种搁浅的管理机构,它始于1999年。其最初目标是为网络设备创建开放搁浅。 基于此思想,此规范也针对Java引入。 Eclipse在Java中是第一个。 他们于2004年6月推出了基于OSGi的Eclipse IDE。 OSGi是在Java中定义动态模块的方法。…

Train Problem I hdu 1022(栈)

http://acm.split.hdu.edu.cn/showproblem.php?pid1022 题意&#xff1a;给出火车的进站与出站顺序&#xff0c;判断是否可以按照给出的出站顺序出站。 #include <iostream> #include <stdio.h> #include <string.h> #include <string> #include <…

Spring数据和Redis

本文是我们学院课程的一部分&#xff0c;标题为Redis NoSQL键值存储 。 这是Redis的速成班。 您将学习如何安装Redis并启动服务器。 此外&#xff0c;您将在Redis命令行中乱七八糟。 接下来是更高级的主题&#xff0c;例如复制&#xff0c;分片和集群&#xff0c;同时还介绍了…

史上最全的SpringMVC学习笔记

SpringMVC学习笔记---- 一、SpringMVC基础入门&#xff0c;创建一个HelloWorld程序 1.首先&#xff0c;导入SpringMVC需要的jar包。 2.添加Web.xml配置文件中关于SpringMVC的配置<!--configure the setting of springmvcDispatcherServlet and configure the mapping-->&…

shader weaver_Oracle通过邀请Weaver和Chin推动JavaFX向前发展

shader weaver昨天&#xff0c;我发布了愚人节帖子&#xff0c;内容涉及加入NASA协助探索红色大行星。 那篇文章与事实相距不远……美国宇航局开发的技术的所有细节都是100&#xff05;准确的。 哎呀&#xff0c;即使我辞职也是事实&#xff01; 唯一不正确的部分是我将加入的公…

mysql快速上手3

上一章给大家说的是数据库的视图&#xff0c;存储过程等等操作&#xff0c;这章主要讲索引&#xff0c;以及索引注意事项&#xff0c;如果想看前面的文章&#xff0c;url如下&#xff1a; mysql快速上手1mysql快速上手2索引简介 索引是对数据库表中一个或多个列&#xff08;例如…

python图像锐化_Python图像处理介绍--图像模糊与锐化

欢迎关注 “小白玩转Python”&#xff0c;发现更多 “有趣”引言在之前的文章中&#xff0c;我们讨论了边缘检测内核。在本文我们将讨论如何在图像上应用模糊与锐化内核&#xff0c;将这些内核应用到彩色图像上&#xff0c;同时保留核心图像。一如既往&#xff0c;我们从导入所…

Eclipse配置初始化(自用)

以上都是性能调优的配置&#xff0c;下面是其他常用的配置和优化 设置utf-8编码 window -> preferences -> General -> workplace中text file encoding改为utf-8 设置properties文件编码window -> preferences -> General -> Content Types —> Text —&g…

java bits_一段关于JAVA程序升级的问题(Changing bits)

展开全部import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import javax.…

java合并两个有序链表_JS实现的合并两个有序链表算法示例

本文实例讲述了JS实现的合并两个有序链表算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例&#xff1a;输入&#xff1a;1->2->4, 1->3->4输出&…

外墙设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …

java 监控 native 内存_JVM NativeMemoryTracking 分析堆外内存泄露

Native Memory Tracking (NMT) 是Hotspot VM用来分析VM内部内存使用情况的一个功能。我们可以利用jcmd(jdk自带)这个工具来访问NMT的数据。NMT介绍工欲善其事必先利其器&#xff0c;我们先把相关需要的配置和工具介绍清楚&#xff0c;再通过例子来看看具体如何使用NMT。打开NMT…

Charles 从入门到精通

目录与版权 转载请保留顶部的 Charles 中国特惠内容&#xff0c;本文的内容主要包括&#xff1a; Charles 的简介如何安装 Charles将 Charles 设置成系统代理Charles 主界面介绍过滤网络请求截取 iPhone 上的网络封包截取 Https 通讯信息模拟慢速网络修改网络请求内容给服务器做…