当前位置:首页 > 科技  > 软件

接口自动化框架里常用的小工具

来源: 责编: 时间:2024-04-03 17:40:09 289观看
导读在日常编程工作中,我们常常需要处理各种与时间、数据格式及配置文件相关的问题。本文整理了一系列实用的Python代码片段,涵盖了日期时间转换、数据格式化与转换、获取文件注释以及读取配置文件等内容,助力开发者提升工作

在日常编程工作中,我们常常需要处理各种与时间、数据格式及配置文件相关的问题。本文整理了一系列实用的Python代码片段,涵盖了日期时间转换、数据格式化与转换、获取文件注释以及读取配置文件等内容,助力开发者提升工作效率,轻松应对常见任务。yKm28资讯网——每日最新资讯28at.com

yKm28资讯网——每日最新资讯28at.com

1. 秒级与毫秒级时间戳获取

# 获取当前秒级时间戳def millisecond(add=0):    return int(time.time()) + add# 获取当前毫秒级时间戳def millisecond_new():    t = time.time()    return int(round(t * 1000))

这两个函数分别提供了获取当前时间的秒级和毫秒级时间戳的功能。millisecond()函数允许传入一个可选参数add,用于增加指定的时间偏移量。yKm28资讯网——每日最新资讯28at.com

2. 当前日期字符串获取

yKm28资讯网——每日最新资讯28at.com

#获取当前时间日期: 20211009def getNowTime(tianshu=0):shijian = int(time.strftime('%Y%m%d')) - tianshuprint(shijian)return shijian

getNowTime()函数返回当前日期(格式为YYYYMMDD),并支持传入参数tianshu以减去指定天数。该函数适用于需要处理日期型数据且仅关注年月日的情况。yKm28资讯网——每日最新资讯28at.com

3.修复接口返回无引号JSON数据yKm28资讯网——每日最新资讯28at.com

def json_json():    with open("源文件地址", "r") as f, open("目标文件地址", "a+") as a:        a.write("{")        for line in f.readlines():            if "[" in line.strip() or "{" in line.strip():                formatted_line = "'" + line.strip().replace(":", "':").replace(" ", "") + ","                print(formatted_line)  # 输出修复后的行                a.write(formatted_line + "/n")            else:                formatted_line = "'" + line.strip().replace(":", "':'").replace(" ", "") + "',"                print(formatted_line)  # 输出修复后的行                a.write(formatted_line + "/n")        a.write("}")

此函数用于处理从接口复制的未正确格式化的JSON数据,修复缺失的引号,并将其写入新的文件。源文件与目标文件的路径需替换为实际路径。yKm28资讯网——每日最新资讯28at.com

4.将URL查询字符串转为JSON

from urllib.parse import urlsplit, parse_qsdef query_json(url):    query = urlsplit(url).query    params = dict(parse_qs(query))    cleaned_params = {k: v[0] for k, v in params.items()}    return cleaned_params

query_json()函数接收一个包含查询字符串的URL,解析其查询部分,将其转换为字典形式,并清理多值参数,只保留第一个值。yKm28资讯网——每日最新资讯28at.com

5.文件注释提取yKm28资讯网——每日最新资讯28at.com

import osdef get_first_line_comments(directory, output_file):    python_files = sorted([f for f in os.listdir(directory) if f.endswith('.py') and f != '__init__.py'])    comments_and_files = []    for file in python_files:        filepath = os.path.join(directory, file)        with open(filepath, 'r', encoding='utf-8') as f:            first_line = f.readline().strip()            if first_line.startswith('#'):                comment = first_line[1:].strip()                comments_and_files.append((file, comment))    with open(output_file, 'w', encoding='utf-8') as out:        for filename, comment in comments_and_files:            out.write(f"{filename}: {comment}/n")# 示例用法get_first_line_comments('指定文件夹', '指定生成文件路径.txt')get_first_line_comments()函数遍历指定目录下的.py文件,提取每份文件的第
一行注释(以#开头),并将文件名与注释对应关系写入指定的文本文件中。

6.读取配置INI文件

import sysimport osimport configparserclass ReadConfig:    def __init__(self, config_path):        self.path = config_path    def read_sqlConfig(self, fileName="sql.ini"):        read_mysqlExecuteCon = configparser.ConfigParser()        read_mysqlExecuteCon.read(os.path.join(self.path, fileName), encoding="utf-8")        return read_mysqlExecuteCon._sections    def read_hostsConfig(self, fileName="hosts.ini"):        read_hostsCon = configparser.ConfigParser()        read_hostsCon.read(os.path.join(self.path, fileName), encoding="utf-8")        return read_hostsCon._sections# 示例用法config_reader = ReadConfig('配置文件所在路径')sql_config = config_reader.read_sqlConfig()hosts_config = config_reader.read_hostsConfig()["hosts"]
ReadConfig类封装了对INI配置文件的读取操作,支持读取sql.ini和hosts.ini文件。通过实例化该类并指定配置文件路径,即可方便地获取所需配置信息。

7.设置全局文件路径

import osdef setFilePath(filePath):    current_module_path = os.path.dirname(os.path.abspath(__file__))    project_root_path = os.path.dirname(os.path.dirname(current_module_path))    path = os.path.join(project_root_path, filePath.lstrip('/'))    return os.path.abspath(path)# 示例用法confPath = setFilePath("地址文件路径")

setFilePath()函数根据提供的相对路径,结合当前模块的绝对路径,计算出项目根目录下的目标文件或目录的绝对路径,便于在项目中统一管理资源位置。yKm28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-81236-0.html接口自动化框架里常用的小工具

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 面试官:Session和JWT有什么区别?

下一篇: 用Python搭建一个Chatgpt聊天页面

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 7月安卓手机性价比榜:努比亚+红魔两款新机入榜

    7月登场的新机有努比亚Z50S Pro和红魔8S Pro,除了三星之外目前唯二的两款搭载超频版骁龙8Gen2处理器的产品,而且努比亚和红魔也一贯有着不错的性价比,所以在本次的性价比榜单
  • 六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    8月5日消息,一年一度的华为开发者大会2023(Together)日前在松山湖拉开帷幕,与此同时,华为8月服务日也式开启,到店可享六大专属权益。华为用户可在华为商城Ap
  • 摸鱼心法第一章——和配置文件说拜拜

    为了能摸鱼我们团队做了容器化,但是带来的问题是服务配置文件很麻烦,然后大家在群里进行了“亲切友好”的沟通图片图片图片图片对比就对比,简单对比下独立配置中心和k8s作为配
  • 三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页“充值中心”入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
Top