Python import自定义模块报错、自定义异常、字符串处理、截取
liuian 2024-12-27 15:15 51 浏览
一、python import自定义的模块报错
问题现象:pycharm中运行一切正常,但是到命令行中(cmd命令行或pycharm的Terminal窗口)运行py文件,就会报错No module named xxx
问题原因:
pycharm在每次运行时,都会检索整个工程目录,把目录都添加到sys.path中,运行的时候,就能够找到对应的模块.py文件。命令行运行时由于目录没有添加到sys.path中,所以会报错:No module named xxx
解决方案:
比如order.py文件中引入了http_utils.py,order.py、http_utils.py文件在项目中的目录结构如下:
根目录
----utils
-------http_utils.py
----testcases
-------mainprocess
-----------order.py则在order.py文件中,头部添加以下代码:
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
from utils.http_utils import *其中os.path.abspath(file)用来获取本文件的绝对路径,os.path.dirname用来获取参数的直接全路径。
可以理解通过这段代码,定义了order.py需要向上找3层,就找到项目根目录,所以这里要写3个os.path.dirname。找到根目录后才能正常的从utils目录找到http_utils.py,因此就不会再报错:No module named xxx
二、python 自定义异常
实际工作中有太多的场景是内置的异常所触及不到的,而这时候使用我们自己定义的异常类型就可以更好的打通业务。自定义异常代码如下:
# 自定义异常
class XError(Exception):
def __init__(self, value=""): # 在抛出一个异常的时候,可以传一个值进来
self.value = value
# 用来print异常信息
def __str__(self):
return "XError :" + str(self.value)使用举例:在接口测试代码中使用自定义异常,判断当接口返回的code值不为1时,就抛出异常
def interfaceRequest():
headers = {
"Accept-Encoding": "gzip, deflate, br"
}
url = 'https://nc.cli.im/qrcode/getDefaultComponentMsg'
print("开始测试接口:interfaceRequest")
print("接口请求url:" + url)
logging.info("接口请求url:" + url)
res = requests.get(url, headers=headers)
print("接口返回结果:" + res.text)
code = json.loads(res.text).get("code")
print("code值:" + str(code))
if str(code) == "1":
pass
else:
raise XError("接口返回值不等于预期值,接口返回结果:" + res.text)三、Python返回字符串中第一个不重复的字母和位置
这是一道常见的测开面试题,验证面试者对python基础语法的熟悉程度,解题代码如下:
def first_char(str):
d = {}
for i in range(len(str)):
# 累计字符的出现次数
if str[i] in d:
d[str[i]] += 1
# 只出现一次,key对应的value就记1次
else:
d[str[i]] = 1
for i in range(len(str)):
if d[str[i]] == 1:
return '第一个不重复的字符串是{},索引是{}'.format(str[i], i)
return "没有不重复的字符串"
if __name__ == '__main__':
s = "wwqqooagg"
res = first_char(s)
print(res)测试结果如下:
四、Python根据指定开头和结尾截取字符串
编写接口自动化测试代码时,有的时候我们需要提取一段字符串中的某一部分字符,用作后续接口使用,代码如下:
def GetMiddleStr(self, content, startStr, endStr):
"""
提取testcase的名字用于log目录使用
"""
startIndex = content.index(startStr)
if startIndex >= 0:
startIndex += len(startStr)
endIndex = content.index(endStr)
return content[startIndex:endIndex]
if __name__=='__main__':
content= "D:\pycharmProject\autotest\testcases\order\cancelOrder.air"
startStr="order\\"
endStr=".air"
testcaseName=self.GetMiddleStr(content,startStr,endStr)最后得到的字符串是:cancelOrder
=================================
以上就是本次的全部内容,都看到这里了,如果对你有帮助,麻烦点个赞+收藏+关注,一键三连啦~
欢迎关注我的公众号:程序员杨叔,各类文章都会第一时间在上面发布,持续分享全栈测试知识干货,你的支持就是作者更新最大的动力~
相关推荐
- 免费刷机工具(免费刷机工具哪个好用)
-
刷机机灵你的安卓手机智能管家:刷机精灵软件是一款适用于Andorid设备的一键刷机软件。它能够自动安装设备驱动、自动获取ROOT权限、自动刷入ClockworkmodRecovery以完成Andr...
- 硬盘重新分区怎么分(硬盘重新分区后怎么装系统)
-
对已分区的硬盘重新分区的方法如下:1. 备份重要数据:重新分区会格式化硬盘,导致数据丢失。因此,在进行重新分区之前,需要备份重要数据。2. 进入磁盘管理工具:在Windows操...
- 一键ghost快捷键(1键ghost)
-
一、开机连续按F8,在系统启动菜单中,选择一键还原选项进行一键还原。二、制作启动盘重装操作系统。安装GHOST版本操作系统方法:1、将制作好的PE启动U盘插入电脑USB接口(台式用户建议将u盘插在主机...
- 换无线路由器需要怎么设置(换个无线路由器怎么连接)
-
1、线路连接,入户网线接到无线路由器的wan口;2、路由器连接,a、如果有网线,可以直接用网线接lan口和电脑网口,然后参照第三步;b、没有网线,电脑搜索路由器,然后点击连接上。然后参照第三步设置;3...
- 数据标注接单平台(数据标注接单平台哪个挣得多一点)
-
数据标注员在家可以通过以下方式接单:1.在线平台:有许多数据标注平台允许数据标注员在家完成标注任务,例如标注客、标注助手、数据堂等。这些平台提供了在线标注工具和API接口,让数据标注员可以在家里使用...
- 电脑垃圾怎么清理系统垃圾(电脑垃圾怎么清理干净)
-
电脑清理c盘空间只留系统的操作方法如下。1、打开电脑,找到我的电脑,双击我的电脑,找到盘符C的系统盘。2、找到“属性”菜单。3、点击“属性”后,系统会出现一个新的界面,在新的界面,我们找到“磁盘清理”...
- 显卡推荐性价比2025(显卡2020性价比)
-
2021年买1000块钱的这种显卡性价比最好的还是小米的显卡比较好,因为小米的电子产品呢是比较好的一款它的质量是比较好的,也是比较靠谱的,尤其是1000块钱以内买的这种显卡呢他的内存是比较大的,所以价...
- thinkpad原厂系统重装方法(thinkpad如何重新装系统)
-
若需重装原装系统,需备份系统数据,制作启动盘或将原装系统镜像刻录至光盘或USB。进入BIOS设置,启动优先选项设定为启动盘,重启电脑。按提示选择新系统安装位置。安装完成后更新系统和驱动程序。最后恢复数...
- 安装系统教程win10(安装系统教程win7)
-
正确安装win10系统的步骤如下:1.确认电脑是否满足win10系统的最低配置要求,如CPU、内存、硬盘空间等。2.下载win10系统镜像文件,可以通过微软官网或第三方下载网站获取。3.制作U盘...
- pps影音手机版下载官网(pps影音百科)
-
区别:1,爱奇艺主打网页播放,PPS主打客户端播放器;2,爱奇艺视频正版高清,PPS不全是高清,有部分盗版;3,爱奇艺在线播放比较好,PPS的P2P加载技术打开视频较快。1、爱奇艺PPS影音其实是爱...
- 百度官方下载安装免费(百度官网免费下载)
-
你好!有两种方法可以免费下载!第一:加入百度文库VIP看百度文库的说明,只要加入百度文库的VIP即可免费下载,不过不推荐这种还是需要花钱的方式第二:下载冰点下载器那这种方法该如何免费下载呢?下面我详细...
-
- windows10更新文件在哪里(win10系统更新文件在哪个文件夹)
-
win10自动更新下载的文件位于C:\Windows\SoftwareDistribution\Download文件夹中。当然我们要找到哪个文件夹确切到哪个补丁并不是那么容易的,因为命名的文件夹都是长长的一段代号,一般我们要删除更新文件的...
-
2026-01-02 03:55 liuian
- 扫描仪怎么安装(信鸽扫描仪怎么安装)
-
扫描仪的安装步骤可能会略有不同,具体取决于您所使用的扫描仪品牌和型号。一般而言,您可以按照以下基本步骤来安装扫描仪:确认您的计算机系统符合扫描仪的最低系统要求。在计算机上插入扫描仪的安装光盘,或从制造...
- u盘怎么启动重装系统(u盘启动重装系统哪个好)
-
1.下载好系统之家U盘以后在电脑上插入U盘并打开软件,软件会自,动配置用户的电脑信息,点击制作U盘启动盘。2.接着就进入了选择系统的界面,在这里选择需要安装的系统版本,然后点击开始制作。3.弹出提示窗...
- photoshopcs6哪一年的(pscs6版本好用吗)
-
pscs6的发行时间是2012年4月24日,该软件是是AdobePhotoshop的第13代,具有多种功能,包括内容识别修补、Mercury图形引擎/3D性能提升/3D控制功能/改良的设计工具/全新的...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
