软件测试/测试开发丨Python文件操作 学习笔记

news2025/1/15 18:03:47

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27721

文件操作

  • 在程序中操作文件和使用图形界面操作文件的过程基本一致,都要进行找到文件位置,打开文件,读写文件,关闭文件等操作。

1、打开文件

  • Python 使用 open 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
  • 完整格式:
open(filename, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • 简化格式:open(filename, mode='r', encoding=None)

    • filename: 必需,指定打开文件的路径(相对或者绝对路径);
    • mode: 可选,文件打开模式,默认为r只读模式;
    • encoding: 一般使用 utf8
  • mode参数常见下表:
    image

2、关闭文件

  • 文件在操作完以后,需要将其关闭,close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。
  • close() 方法允许调用多次。
  • 格式:fileObject.close()

3、写入文件

  • fileObject.write( str ): 用于向文件中写入指定字符串。如果文件打开模式为b ,则要将字符串转换成 bytes 类型的二进制字符串,函数返回成功写入数据的长度
# 以写入文件打开 index.html 文件
file = open("index.html", "w")
# 写入数据
result1 = file.write("<h1>文件写入标题</h1>")
result2 = file.write("\n")
result3 = file.write("<p>文件写入内容。。。。。。</p>")
print("result1=",result1)# result1= 15
print("result2=",result2)# result2= 1
print("result3=",result3)# result3= 19
# 关闭文件
file.close()
  • fileObject.writelines(seq):用于向文件中写入一序列的字符串。这一序列字符串可以是由迭代对象产生的,如一个字符串列表。

    • 注意:不要被方法名所迷惑,如果每个元素独占一行,需要在数据后指定换行符 \n
datas = ["AAAAAAAAAAAA\n","BBBBBBBBBBBB\n","CCCCCCCCCCCC\n","DDDDDDDDDDDD\n"]
file = open('data.txt',"w")
result = file.writelines(datas)
print("result=",result)# result= None
file.close()

4、读取文件

  • fileObject.read(size=-1):用于从文件读取指定的字节数,如果未给定或为负则读取所有
  • 注意光标的位置,连续读取文件没有关闭的时候,光标会随着读取而向后移动,不会回到默认起始位置;
file = open('data.txt',"r")
# 读取10个字符
content = file.read(10)
print(content)
# 读取所有内容
content = file.read()
print(content)
file.close()
------------------------------
AAAAAAAAAA
AA
BBBBBBBBBBBB
CCCCCCCCCCCC
DDDDDDDDDDDD
  • fileObject.readline(size=-1): 用于从文件读取整行,包括 \n 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 \n 字符。
  • 该方法默认读取一行,如果指定了长度,会读取这一行中的给定长度,并且如果文件不关闭,光标也不会回到默认起始位置,再次读取会从光标所在位置读取这一行剩下的内容;
file = open('data.txt',"r")
# 读取10个字符
content = file.readline(10)
print(content)
# 读取文件指针所在行剩余所有内容
content = file.readline()
print(content)
file.close()
---------------------------------------------
AAAAAAAAAA
AA
  • fileObject.readlines():用于读取所有行(直到结束符 EOF)并返回列表
file = open('data.txt',"r")
# 以行为单位读取文件所有的内容
contents = file.readlines()
print(contents)
file.close()
--------------------------------------------------
['AAAAAAAAAAAA\n', 'BBBBBBBBBBBB\n', 'CCCCCCCCCCCC\n', 'DDDDDDDDDDDD\n']

5、作业

作业要求

编写一个Python程序,将一些文本内容写入到文件中,并且能够从文件中读取内容并显示出来

"""
作业要求
编写一个Python程序,将一些文本内容写入到文件中,并且能够从文件中读取内容并显示出来
"""

def file_write(filename,msg,mode='a',encoding='utf8'):
    """
    文件写入方法,支持写入:字符串和一序列的字符串
    :param filename:文件名称
    :param msg:写入内容
    :param mode:文件打开方式
    :param encoding:内容编码
    :return:
    """
    file = open(filename,mode,encoding=encoding)
    if isinstance(msg,str):
        # 写入字符串类型
        file.write(msg)
    elif isinstance(msg,list):
        # 写入序列字符串
        file.writelines(msg)
    else:
        # 关闭文件
        file.close()
        raise Exception("msg type erroe")
     # 关闭文件
    file.close()

def file_read(filename,size=-1,mode='r',encoding='utf8'):
    """
    读取文件,支持读取一行或所有
    :param filname: 文件名
    :param size: -1表示读取所有,
    :param mode: 文件打开方式
    :param encoding: 内容编码
    :return:
    """
    file = open(filename, mode, encoding=encoding)
    if size == -1:
        # 读取所有内容
        content = file.read()
        file.close()
        return content
    elif size == 1:
        # 读取一行
        content = file.readline()
        file.close()
        return content
    else:
        # 关闭文件
        file.close()
        raise Exception("size error")

if __name__ == '__main__':
    # 写入文件
    filename = 'demo.txt'
    # msg = "霍格沃兹测试开发学社\n"
    # file_write(filename,msg)
    # msg = ["AAAAAAAAAAAA\n","BBBBBBBBBBBB\n","CCCCCCCCCCCC\n","DDDDDDDDDDDD\n"]
    # file_write(filename, msg)

    # 读取文件
    line = file_read(filename,1)
    print(line)
    all = file_read(filename)
    print(all)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1070772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

架构方法、模型、范式、治理

从架构方法、模型、范式、治理等四个方面介绍架构的概念和方法论、典型业务场景下的架构范式、不同架构的治理特点这3个方面的内容

ChatGPT 背后包含了哪些技术?

ChatGPT 是由OpenAI开发的一款基于GPT-3&#xff08;Generative Pre-trained Transformer 3&#xff09;的人工智能语言模型。这个模型是使用多种编程语言和技术组合编写的。 首先&#xff0c;ChatGPT 使用了 Python 作为主要的编程语言。Python 是一种流行的高级编程语言&…

Vue3+TypeScript

一、Vue3带来的变化(源码&#xff09; 源码通过monorepo的形式来管理源代码 口Mono:单个 口Repo : repository仓库 口主要是将许多项目的代码存储在同一个repository中; 口这样做的目的是多个包本身相互独立&#xff0c;可以有自己的功能逻辑、单元测试等&#xff0c;同时又在…

绘制长时间尺度的古地理图(海岸线)——获取海岸线数据

绘制长尺度的古地理图&#xff08;海岸线&#xff09; 2. 重建海岸线2.1. 功能描述2.2. 功能接口2.3. 功能参数2.4. 返回值2.5. 功能示例2.5.1. 使用SETON2012模型将海岸线重建至140Ma。2.5.2. 返回一个PNG地图。2.5.3. 返回指定范围内的 png 地图 分析 本文接续计算古坐标点—…

【Java 进阶篇】HTML 语义化标签详解

HTML&#xff08;HyperText Markup Language&#xff09;是构建Web页面的标准语言。在HTML中&#xff0c;标签&#xff08;tag&#xff09;是用于定义页面结构和内容的关键元素。在构建网页时&#xff0c;了解如何正确使用HTML标签是非常重要的&#xff0c;因为它们不仅影响页面…

地磁查询网站

百度搜索经纬度查询定位&#xff0c;找到位置点坐标&#xff0c; 登录如下网站 https://www.ngdc.noaa.gov/geomag/calculators/magcalc.shtml#igrfwmm

ADuM1250 ADuM1251 模块 I2C IIC总线2500V电磁隔离 接口保护

功能说明&#xff1a; 1&#xff0c;2500V电磁隔离&#xff0c;2通道双向I2C&#xff1b; 2&#xff0c;支持电压在3到5.5V&#xff0c;最大时钟频率可达1000KHz&#xff1b; 3&#xff0c;将该隔离模块接入总线&#xff0c;可以保护主MCU引脚&#xff0c;降低I2C总线上的干…

BUUCTF [MRCTF2020]Ez_bypass1

这道题全程我都是用bp做的 拿到题目 我们查看页面源代码得到 代码审计 我们要用get传入id和gg两个参数&#xff0c;id和gg的值要求不能相等&#xff0c;但是id和gg的md5强比较必须相等 if(isset($_GET[gg])&&isset($_GET[id])) {$id$_GET[id];$gg$_GET[gg];if (md5($…

PUPANVR-UI主菜单及设置窗体框架(9)

PUPA NVR UI主菜单及设置窗体框架 在设计UI时&#xff0c;竟量把数据、控制、显示&#xff0c;分开&#xff0c;即MVC的一个模式吧&#xff01;使用MVC这样的模式思想&#xff0c;会让代码简洁不少&#xff0c;逻辑也很清析&#xff01; 具体的代码见&#xff1a; PUPANVR这个…

聊聊分布式架构05——[NIO基础]BIO到NIO的演进

目录 I/O I/O模型 BIO示例 BIO与NIO比较 NIO的三大核心 NIO核心之缓冲区 Buffer常用子类&#xff1a; Buffer常用API Buffer中的重要概念 NIO核心之通道 FileChannel 类 FileChannel常用方法 NIO核心之选择器 概述 应用 NIO非阻塞原理分析 服务端流程 客户端…

前端—— 分层模型和应用协议

1 分层模型 MAC地址 可以认为计算机专属&#xff0c;可以认为每台计算机的 MAC地址 固定不变&#xff1b; IP地址 可以认为是计算机当前的【家庭地址】&#xff0c;动态唯一&#xff0c;家庭地址变化&#xff0c;IP地址 也跟着变化&#xff1b; 举个例子&#xff0c;A 给 B 发…

SpringBoot——》更改Redis序列化方式

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

【多线程案例】设计模式-单例模式

1.单例模式 什么是单例模式&#xff1f; 所谓单例&#xff0c;即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象&#xff0c;并且提前在类里面创建好一个实例对象&#xff0c;把构造方法私有化&#xff0c;再对外提供获取这个实例对象的方法&#xff0c;&#xff0…

乐得瑞LDR6023/LDR6028完美兼容iphone15系列OTG充电功能

OTG&#xff08;On-The-Go&#xff09;功能是一项便捷的数据交换功能&#xff0c;广泛应用于移动设备间的数据传输。虽然最早由USB标准化组织在2001年发布&#xff0c;但在市场上的普及主要集中在2014年左右&#xff0c;尤其是在大多数安卓手机上。 在TYPE-C PD协议中&#xf…

HTML5+CSSDAY4综合案例一--热词

样式展示图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>热词…

Nginx的安全控制

安全控制 关于web服务器的安全是比较大的一个话题&#xff0c;里面所涉及的内容很多&#xff0c;Nginx反向代理是安全隔离来提升web服务器的安全&#xff0c;通过代理分开了客户端到应用程序服务器端的连接&#xff0c;实现了安全措施。在反向代理之前设置防火墙&#xff0c;…

深入浅出的介绍一下虚拟机VMware Workstation——part1

目录 VMware Workstation说明VMware Workstation的主要特点VMware Workstation安装VMware Workstation卸载 VMware Workstation说明 1、 虚拟机的软件在市面上有很多&#xff0c;目前功能强大且比较主流的虚拟机软件首选VMware 2、VMware是一个虚拟PC的软件&#xff0c;可以在…

A (1087) : DS单链表--类实现

Description 用C语言和类实现单链表&#xff0c;含头结点 属性包括&#xff1a;data数据域、next指针域 操作包括&#xff1a;插入、删除、查找 注意&#xff1a;单链表不是数组&#xff0c;所以位置从1开始对应首结点&#xff0c;头结点不放数据 类定义参考 #include<…

边坡安全监测系统的功能优势

随着科技的进步&#xff0c;边坡安全监测系统在各种工程项目中发挥着越来越重要的作用。这款系统通过实时监测垂直、水平位移数据&#xff0c;以折线图的方式显示在监控平台中&#xff0c;为工程人员提供了直观、便捷的监控工具&#xff0c;从而能够及时掌握边坡稳定状况&#…

Quarto 入门教程 (1):简单介绍和资料汇总

本推文是 “手把手教你使用 Quarto 构建文档” 教程的第一部分&#xff0c;本文先介绍 Quarto 构建文档的原理&#xff1b;可创建的文档类型&#xff1b;对应的参考资源分享。 下一部分&#xff0c;会手把手介绍如何使用它&#xff08;下次推文吧&#xff5e;&#xff09;。 …