Python常用的自动化小脚本!

发布时间:2024年01月19日

一、list转json、string转json

可以使用Python内置的json模块将列表(List)和字符串(String)转换成JSON格式。

List转JSON假设我们有一个列表(List):my_list = ['apple', 'banana', 'cherry']
我们可以使用json.dumps()函数将该列表转换成JSON格式:import jsonjson_data = json.dumps(my_list)print(json_data)  # 输出结果:["apple", "banana", "cherry"]
????
String转JSON假设我们有一个字符串(String):my_string = '{"name": "John", "age": 30, "city": "New York"}'
我们可以使用json.loads()函数将该字符串转换成JSON格式:import jsonjson_data = json.loads(my_string)print(json_data)  # 输出结果:{'name': 'John', 'age': 30, 'city': 'New York'}

注意,json.loads()函数将字符串转换成Python字典(Dict)对象,而不是JSON字符串。如果需要将Python字典对象转换成JSON字符串,可以使用json.dumps()函数。

二、时间格式转换

在Python中,可以使用datetime模块对时间进行格式转换。下面是一些示例:??????

将字符串转换为时间对象from datetime import datetime# 字符串格式:2022-04-21 13:30:00string_time = '2022-04-21 13:30:00'# 将字符串转换为时间对象time_obj = datetime.strptime(string_time, '%Y-%m-%d %H:%M:%S')# 输出时间对象print(time_obj)  # 输出结果:2022-04-21 13:30:00

在上面的代码中,使用datetime.strptime()函数将字符串时间格式转换成时间对象。第一个参数为字符串时间,第二个参数为时间格式字符串,'%Y'表示年份,'%m'表示月份,'%d'表示日期,'%H'表示小时,'%M'表示分钟,'%S'表示秒。

将时间对象转换为字符串from datetime import datetime# 时间对象time_obj = datetime.now()# 将时间对象转换为字符串string_time = time_obj.strftime('%Y-%m-%d %H:%M:%S')# 输出字符串时间print(string_time)  # 输出结果:2023-04-21 16:52:22

在上面的代码中,使用datetime.strftime()函数将时间对象转换成字符串时间格式。与上面的例子类似,第一个参数为时间对象,第二个参数为时间格式字符串,'%Y'表示年份,'%m'表示月份,'%d'表示日期,'%H'表示小时,'%M'表示分钟,'%S'表示秒。

时间戳与时间对象的转换

from datetime import datetime# 时间戳timestamp = 1650649800# 将时间戳转换为时间对象time_obj = datetime.fromtimestamp(timestamp)# 输出时间对象print(time_obj)  # 输出结果:2022-12-21 12:30:00# 将时间对象转换为时间戳timestamp = int(time_obj.timestamp())# 输出时间戳print(timestamp)  # 输出结果:1650649800
在上面的代码中,使用datetime.fromtimestamp()函数将时间戳转换成时间对象。使用datetime.timestamp()函数将时间对象转换成时间戳。注意,时间戳是指自1970年1月1日以来的秒数。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

三、读取文件地址

在Python中,可以使用open()函数打开文件并读取其中的内容。在使用open()函数时,需要指定文件路径和文件打开模式。文件路径可以是相对路径或绝对路径。

以下是一些示例:

读取当前目录下的文件

假设当前目录下有一个名为example.txt的文件,可以使用以下代码读取文件内容:with open('example.txt', 'r') as f:    content = f.read()    print(content)

在上面的代码中,使用open()函数打开example.txt文件,并指定了打开模式为'r',即只读模式。使用with语句可以自动关闭文件。使用f.read()函数读取文件内容,并将内容赋值给变量content。最后输出文件内容。

读取其他目录下的文件

假设要读取/home/user/Documents/example.txt文件的内容,可以使用以下代码:with open('/home/user/Documents/example.txt', 'r') as f:    content = f.read()    print(content)

在上面的代码中,指定了文件的绝对路径/home/user/Documents/example.txt。同样使用with语句和f.read()函数来读取文件内容并输出。

需要注意的是,使用绝对路径可以避免由于相对路径不正确导致无法读取文件的情况。但是,如果代码要在不同的操作系统中运行,文件路径的格式可能不同。在Linux系统中,文件路径使用斜杠/分隔;在Windows系统中,文件路径使用反斜杠\分隔。如果要编写可移植的代码,建议使用os.path模块来处理文件路径。

四、二维码图片生成

在Python中,可以使用qrcode库来生成二维码图片。以下是一个示例代码:??????

import qrcode# 创建二维码对象qr = qrcode.QRCode(    version=1,    error_correction=qrcode.constants.ERROR_CORRECT_L,    box_size=10,    border=4,)# 设置要生成的字符串data = 'https://www.example.com/'# 添加数据到二维码对象中qr.add_data(data)# 编译二维码对象qr.make(fit=True)# 创建二维码图片img = qr.make_image(fill_color='black', back_color='white')# 保存二维码图片img.save('qrcode.png')
在上面的代码中,首先创建了一个二维码对象qr,并设置了版本、纠错级别、方块大小和边框大小。然后设置了要生成的字符串data,并将其添加到二维码对象中。接着,调用make()方法编译二维码对象。最后,调用make_image()方法生成二维码图片,并将其保存为qrcode.png文件。

生成的二维码图片可以根据需求进行调整,如改变方块颜色、背景颜色、二维码大小等等。qrcode库提供了许多选项供调整。

需要注意的是,生成二维码图片时,需要安装qrcode库。可以使用pip命令来安装:pip?install?qrcode

安装完成后即可使用qrcode库生成二维码图片。

五、条形码图片生成

在Python中,可以使用barcode库来生成条形码图片。以下是一个示例代码:

import barcodefrom barcode.writer import ImageWriter# 设置要生成的字符串data = '123456789'# 创建EAN13条形码对象ean = barcode.get('ean13', data, writer=ImageWriter())# 保存条形码图片filename = ean.save('barcode')
在上面的代码中,首先设置了要生成的字符串data。然后创建了一个EAN13条形码对象,指定了条形码类型和要生成的字符串。最后调用save()方法将条形码图片保存为barcode.png文件。

barcode库支持多种条形码类型,如EAN13、EAN8、Code39等等。可以根据需求选择不同的类型来生成不同类型的条形码图片。???????

需要注意的是,生成条形码图片时,需要安装barcode库。可以使用pip命令来安装:pip?install?python-barcode

安装完成后即可使用barcode库生成条形码图片。

六、身份证号码批量生成

可以使用Python中的id-validator库来生成符合规范的身份证号码。以下是一个示例代码:???????

from id_validator import validator# 生成10个符合规范的身份证号码for i in range(10):    id_card = validator.create_id_card()    print(id_card)
在上面的代码中,首先导入id-validator库中的validator模块。然后使用create_id_card()函数生成符合规范的身份证号码,并将其打印出来。???????
需要注意的是,id-validator库需要安装才能使用。可以使用pip命令来安装:pip install id-validator

另外,生成身份证号码时需要注意遵守国家的相关规定,不得违法或滥用。

七、list数据对比

在Python中,可以使用set集合或列表解析来对比两个列表之间的差异或相同元素。

  1. 使用set集合???????

list1 = [1, 2, 3, 4, 5]list2 = [3, 4, 5, 6, 7]set1 = set(list1)set2 = set(list2)# 求交集intersection = set1.intersection(set2)print(list(intersection))# 求并集union = set1.union(set2)print(list(union))# 求差集difference = set1.difference(set2)print(list(difference))
在上面的代码中,首先将两个列表转换成set集合,然后可以使用intersection方法求交集、union方法求并集和difference方法求差集。最后,将集合转换成列表进行打印。
  1. 使用列表解析???????

list1 = [1, 2, 3, 4, 5]list2 = [3, 4, 5, 6, 7]# 求交集intersection = [x for x in list1 if x in list2]print(intersection)# 求并集union = list(set(list1 + list2))print(union)# 求差集difference = [x for x in list1 if x not in list2]print(difference)
在上面的代码中,使用列表解析对比两个列表之间的差异或相同元素。其中,intersection列表解析中使用了条件判断,只有当xlist2中才会被添加到结果中;union列表解析中先将两个列表相加再转换成set集合,最后再转换成列表;difference列表解析中同样使用了条件判断,只有当x不在list2中才会被添加到结果中。

以上两种方法都可以对比两个列表之间的差异或相同元素,可以根据具体需求选择使用哪种方法。

八、json数据对比

在Python中,可以将JSON数据转换为Python对象,例如字典或列表,然后再进行对比。以下是一个示例代码:???????

import json# 定义两个JSON数据json_str1 = '{"name": "Tom", "age": 18, "gender": "male"}'json_str2 = '{"name": "Jerry", "age": 20, "gender": "male"}'# 将JSON数据转换为Python对象data1 = json.loads(json_str1)data2 = json.loads(json_str2)# 对比两个Python对象for key in data1:    if key in data2:        if data1[key] != data2[key]:            print(key, "不相同:", data1[key], data2[key])    else:        print(key, "在第二个JSON数据中不存在")for key in data2:    if key not in data1:        print(key, "在第一个JSON数据中不存在")
在上面的代码中,首先定义了两个JSON数据字符串json_str1json_str2。然后使用json.loads()函数将JSON数据转换为Python对象。最后对比两个Python对象中的差异或相同元素,打印出不相同或不存在的键值对。

需要注意的是,对比JSON数据时需要注意JSON数据的格式是否正确,否则可能会导致JSON数据解析失败,无法转换成Python对象。

九、批量获取类方法

在Python中,可以使用反射机制来获取一个类中的所有方法,包括实例方法和类方法。以下是一个示例代码:???????

class MyClass:    def __init__(self, name):        self.name = name
    def my_method1(self):        pass
    def my_method2(self):        pass
    @classmethod    def my_classmethod(cls):        pass
    @staticmethod    def my_staticmethod():        pass
# 获取类的所有方法,包括实例方法和类方法methods = [func for func in dir(MyClass) if callable(getattr(MyClass, func))]
# 打印方法名for method in methods:    print(method)
在上面的代码中,定义了一个MyClass类,其中包含了实例方法、类方法和静态方法。使用dir(MyClass)获取MyClass类的所有属性和方法,然后使用callable(getattr(MyClass, func))判断属性或方法是否可以被调用。最后使用列表解析将可调用的方法名保存在methods列表中,遍历列表并打印每个方法的名字。

需要注意的是,这种方法仅仅只能获取到可调用的方法名,但是不能获取到方法的参数信息和返回值信息。如果需要获取到这些信息,可以使用Python内置的inspect模块来实现。

十、文件到达1M后,按照时间清除文件

可以使用Python中的ostime模块来实现当文件大小超过1M时,按照一定时间间隔清除文件的操作。以下是一个示例代码:???????

import osimport time
def clear_file(file_path, limit_size=1024*1024, clear_interval=3600):    """    清除文件,当文件大小超过limit_size时,按照clear_interval的时间间隔清除文件。    :param file_path: 文件路径    :param limit_size: 文件大小限制,默认为1M    :param clear_interval: 清除文件的时间间隔,默认为3600秒(1小时)    """    while True:        # 获取文件大小        file_size = os.path.getsize(file_path)
        # 如果文件大小超过限制,则清除文件        if file_size > limit_size:            os.remove(file_path)            print("文件已清除,文件路径:", file_path)        else:            print("文件大小未超过限制,文件路径:", file_path)
        # 等待一定时间间隔后再进行下一次清除        time.sleep(clear_interval)
# 示例用法clear_file("test.txt", limit_size=1024*1024, clear_interval=3600)

在上面的代码中,定义了一个clear_file()函数,该函数接收文件路径、文件大小限制和清除文件的时间间隔三个参数。通过循环,不断获取文件大小并判断文件大小是否超过限制,如果超过限制,则清除文件,否则等待一定时间间隔后再进行下一次清除。

需要注意的是,清除文件可能会对系统产生一定的影响,因此在使用该函数时需要谨慎。另外,在实际应用中,还需要考虑清除文件时可能会产生的异常情况,如文件被占用等。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:自动化测试老司机?! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

文章来源:https://blog.csdn.net/qq_43371695/article/details/135697841
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。