Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作

简介: 本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。

前言

作者编写的python接口自动化测试框架回顾,基础篇已接近尾声,对于python编程基础应该是了然于胸,如果再加以练习,就可以百度自学解决一些基础问题了。作为基础篇,把文件的IO操作和异常处理放在最后学习是有理由的,这也是实际工作中遇到最频繁的两个问题点了,话不多说且来看python是如何操作文件的。

文件操作

文件,在Python中,更多脚本中提现,大多是txt文本格式的文件,少有的是关于图片(jpg\png\gif)、音频(MP3)等文件,它们都使用同一个方法:open()

open()方法

open()方法见名知意(见标识符定义规则),用于打开一个文件,并且返回文件对象,如果文件无法被打开就会抛出OSError错误,同时有open()必然有close()方法。

image.png

  • 语法格式,主要是3个参数:必传文件,默认读模式,编码格式
open(file,mode="r",encoding="utf-8")
    • 完整的语法(IDE工具输入open会提示):open(file, mode, buffering, encoding, errors, newline, closefd, opener)

open打开文件一般操作模式为读r、写w、a追加;但是有一个b是表示二进制文件的操作,像图片、音频的读写就需要带上b,如:rb、wb;文件操作的几种模式,多练习几次就理解了

close()方法

close是文件对象的方法,即关闭open返回的文件对象

file = open(file,mode="r")
# file对象操作
file.close() # 一定要关闭
read(int:size)

带参数,表示读的字节数,否则为读取全部

# 假设file.txt文件有10行内容,每一行依顺序为数字:1,2,3...10
"""
12345678910
2345678910
345678910
45678910
5678910
678910
78910
8910
910
10
"""
file = open("file.txt","r")
content = file.read(3)
print(content) # 应该输出:123

content = file.read(11)
print(content) # 应该输出:12345678910

content = file.read(12)
print(content) # 应该输出:???

content = file.read()
print(content) # 应该输出file.txt文件的所有内容

file.close()
  • 思考一下上面的例子,从控制台看结果,file.read(12)应该输出什么?
readline(int:size)

读字节数效果同read(),但是不为空则读取整行数据包括\n换行符

file = open("file.txt","r")

content1 = file.readline()
print(content1) # 应该输出:12345678910 

file.close()
readlines(int:size)

参数为空,读取所有行并以列表的形式返回,如果有数值,则返回的列表是以字符长度区分,如果字符数超过第一行小于第二行的总和则返回两行的数据,不足一行则返回一行

file = open("file.txt","r")

content1 = file.readlines()
print(content1) 
# 应该输出:\ ['12345678910\n', '2345678910\n', '345678910\n', '45678910\n', '5678910\n', '678910\n', '78910\n', '8910\n', '910\n', '10']

content2 = file.readlines(10)
print(content2) # 应该输出:['12345678910\n']

content2 = file.readlines(16)
print(content2) # 应该输出:['12345678910\n', '2345678910\n']

file.close()
write()写入

读出的是字符串类型,那么写入的也必须是字符串;如果需要换行则需要自己加入\n换行符;它返回的是写入的字符长度;如果文件不存在则会创建的

file = open("file.txt","w")

content1 = file.write("写入")
print(content1) # 输出:2

file.write("写入"+"\n") # 写入文件,光标会在下一行

file.close()
writelines()

写入的数据类型是序列字符串列表,如果需要换行也需要自己加入\n换行符,没有返回值

file = open("file.txt","w")

content1 = file.writelines("写入")
print(content1) # 输出:None

file.write(["写入"+"\n"]) # 写入文件,光标会在下一行

file.close()
思考:open方法能打开xlsx文件吗?其他格式呢?

扩展

是不是觉得上面的操作有点繁琐,显示打开文件,接收文件对象,操作完文件之后,还需要关闭文件;那么接下来学一个好东西:

with…as 上下文管理器

不需要管理,程序运行结束自动关闭文件

with open("file.txt","r") as pf:
    content = pf.read()

print(content) # 应该输出文件的所有内容
练习:图片文件读取,当然不需要去看内容,因为会看不懂

它没有encoding参数

with open("test.png","rb") as pf:
    text=pf.read()

print(text) # 输出的是二进制:b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x02\x00\x00\x01\x00\x01\x00\x
  • 复制图片
with open("iamge.jpg","rb") as pf:
    content=pf.read()

with open("image.jpg","wb") as fp:
    fp.write(content)
留下一个作业:音频文件如何操作复制呢?
相关文章
|
25天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
81 8
|
27天前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
60 14
|
5天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
104 60
|
1天前
|
人工智能 编解码 自然语言处理
AGUVIS:指导模型实现 GUI 自动化训练框架,结合视觉-语言模型进行训练,实现跨平台自主 GUI 交互
AGUVIS 是香港大学与 Salesforce 联合推出的纯视觉 GUI 自动化框架,能够在多种平台上实现自主 GUI 交互,结合显式规划和推理,提升复杂数字环境中的导航和交互能力。
27 8
AGUVIS:指导模型实现 GUI 自动化训练框架,结合视觉-语言模型进行训练,实现跨平台自主 GUI 交互
|
11天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
98 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
8天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
93 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
17天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
49 7
|
15天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
51 2
|
30天前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
30天前
|
数据管理 jenkins 测试技术
自动化测试框架的设计与实现
在软件开发周期中,测试是确保产品质量的关键步骤。本文通过介绍自动化测试框架的设计原则、组件构成以及实现方法,旨在指导读者构建高效、可靠的自动化测试系统。文章不仅探讨了自动化测试的必要性和优势,还详细描述了框架搭建的具体步骤,包括工具选择、脚本开发、执行策略及结果分析等。此外,文章还强调了持续集成环境下自动化测试的重要性,并提供了实际案例分析,以帮助读者更好地理解和应用自动化测试框架。