python读取配置文件报keyerror-文件路径不正确导致的错误
- 在其他模块使用反射读取配置文件报错,但是在反射模块中读取GetData.check_list又是正确的

反射模块如下:
# 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))
- 结果:仍然报错,原因是执行了引用模块中的代码, 在引用模块中的print(Get.check_list)语句, 在这里执行了所以报错
A模块中有print语句a【a没有放在main下面】,B调用A时,也会执行a, 或者B只是引用了A模块,并没有调用其中的函数,也会执行a


- 将上述代码注释掉就可以正常执行了
方法2:找到出错原因,进行修改
使用反射出错的原因是反射中有读取配置文件的代码,读取配置文件时要有文件的路径,在project_path中读取目录时没有使用绝对路径导致在其他模块引用反射时出错了,改成通过 os.path.split(os.path.split(os.path.realpath(__file__))[0])[0] 获取路径就OK了

python读取配置文件报keyerror-文件路径不正确导致的错误的更多相关文章
- python 读取mysql存储的文件路径下载文件,内容解析,上传七牛云,内容入es
#!/usr/bin/env python # -*- coding: utf-8 -*- import ConfigParser import json import os import re fr ...
- C# ASP JS引用路径不正确导致的错误
假设JS包放在根目录下的Scripts文件夹下 当前页的路径在另一个文件夹下,那么他引用JS应该:<script src="../Scripts/jquery-1.4.1.min.js ...
- python 读取配置文件总是报错 configparser.NoSectionError: No section:
本文为作者原创,禁止转载,违者必究法律责任!!! python 读取配置文件总是报错 configparser.NoSectionError: No section: 无论是 python2的版本,还 ...
- python读取配置文件的方式
python读取配置文件的方式 1.从config.ini中读取,后缀无所谓,文件名字也无所谓,不过config.ini是常用写法,所谓见名知意 config.ini内容: [global] ip = ...
- ServletContext 接口读取配置文件要注意的路径问题
在建立一个maven项目时,我们通常把一些文件直接放在resource下面,在ServletContext中有getResource(String path)和getResourceAsStream( ...
- python读取txt批量创建文件
python读取txt批量创建文件 pythonbatchfile 前几天有个小问题, 需要批量建立很多文件夹,, 所以手动写了个小的脚本, 后续可以直接使用 读取目录文件, 然后直接创建相应的文件 ...
- //读取配置文件(属性文件)的工具类-ConfigManager
package com.pb.news.util; import java.io.IOException;import java.io.InputStream;import java.sql.Resu ...
- python读取配置文件(ini、yaml、xml)
python读取配置文件(ini.yaml.xml)
- configparser读取配置文件时的相对路径问题
学习接口测试时,当我把配置文件xx.config和读取配置文件的模块read_config.py放在项目下的同一个包config里时,只需传入文件名xx.config即可实现对配置文件的读取. 但是当 ...
随机推荐
- python装饰器的参数传递
被装饰器装饰的函数名即使没有被调用(因为有@xxx,会触发运行装饰器),(装饰器工厂函数)定义装饰器的代码已经运行了(最内部的那个函数并没有运行)(把被装饰的原函数引用赋值给了装饰器内部的那个函数名) ...
- C++数组常用操作
1. 遍历数组 使用基于范围的for循环来遍历整个数组 用_countof()来得到数组中的元素个数 #include <iostream> #include <cstdio> ...
- drf_jwt手动签发与校验-drf小组件:过滤-筛选-排序-分页
签发token 源码的入口:完成token签发的view类里面封装的方法. 源码中在请求token的时候只有post请求方法,主要分析一下源码中的post方法的实现. settings源码: 总结: ...
- quartz定时任务(数据库需要的表)
Quartz将Job保存在数据库中所需表的说明 QRTZ_CALENDARS 以 Blob 类型存储 Quartz 的 Calendar 信息 QRTZ_CRON_TRIGGERS 存储 Cron T ...
- Django专题-中间件
前戏 我们给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁 ...
- spring 事物面试题
1.spring 事物管理器中事物传播机制 2.spring中事物的隔离级别 读未提交-事物未提交,另一个事物可以读取到,脏读 读已提交-事物已提交,先前读取的数据与后来读取的数据不同,不可重复读 可 ...
- Graph & Tree2
续https://www.cnblogs.com/tyqtyq/p/9769817.html 0x65 负环 SPFA 当一个节点入队次数到达N的时候,就说明有负环 或者记录最短路包含的路径条数 还有 ...
- Python程序中的进程操作--—--开启多进程
Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...
- aiohttp web服务端(server)样例 (非client)
python版本 python3.6 (其他版本需要小改,版本>python3.4) 参考网址:https://www.cnblogs.com/ameile/p/5589808.html as ...
- CodeForces 993A Two Squares(数学 几何)
https://codeforces.com/problemset/problem/993/A 题意: 给你两个矩形,第一行是一个正面表示的矩形,第二个是一个旋转四十五度角的矩形,问这两个矩形是否相交 ...