Python基础教程:读写文件IO操作

news2025/1/13 7:46:37

Python 是一门优秀的开发语言,它不仅是一种动态的脚本语言,还支持多种应用场景。在 Python 中,我们可以使用文件和 I/O 操作来读取和写入文件。它比起其他编程语言,使用更加方便。
在这里插入图片描述

1.读写文本文件

在 Python 中,读写文本文件是最基本的 I/O 操作。Python 提供一个内置函数 open() 来打开文件。我们需要指定文件路径和打开模式。在读取文本文件时,我们可以使用以下模式:

  • 'r':只读模式。
  • 'w':只写模式。
  • 'a':追加模式。
  • 'x':独占模式,只有在文件不存在时才创建。
  • 'b':二进制模式。
  • 't':文本模式。

默认情况下,'r' 模式打开的是文本文件模式,如果我们需要打开二进制文件,则需要使用 'rb' 模式。下面是一个读取文本文件的例子:

# 打开文件
file = open("example.txt", "r")

# 读取文件内容
content = file.read()

# 打印文件内容
print(content)

# 关闭文件
file.close()

我们首先使用 open() 函数打开一个名为 "example.txt" 的文件来读取文件内容。然后使用 read() 方法一次性读取整个文件。最后,使用 close() 方法关闭文件。

还可以逐行读取文件内容,示例代码如下:

# 打开文件
file = open("example.txt", "r")

# 逐行读取文件内容
for line in file:
    print(line)

# 关闭文件
file.close()

更多编程和项目管理相关文章,收藏我的个人博客(http://www.poycode.cn)

在这个例子中,我们使用 for 循环读取文件中的每一行,并使用 print() 方法输出。在循环结束后,我们使用 close() 方法关闭文件。

如果我们想逐行读取一个文本文件的所有内容并将其保存在列表中,可以使用以下代码:

# 打开文件
file = open("example.txt", "r")

# 读取文件内容并保存在列表中
lines = file.readlines()

# 打印列表内容
print(lines)

# 关闭文件
file.close()

readlines() 方法会逐行读取文件内容并将其保存在一个列表中。接下来的代码打印列表中的所有内容,并关闭文件。

我们还可以更进一步,使用 with 关键字

with open('example.txt', 'r') as file:
    lines = file.readlines()
    print(lines)

这样做的好处显而易见,我们无需手动调用 file.close()方法关闭文件,with语句会自动关闭文件。

要写一个文本文件,我们可以将打开模式设置为 w (写模式)或 a (追加模式)。下面是一个示例:

# 打开文件,可以使用 mode="a" 将内容追加到文件末尾
file = open("example.txt", "w")

# 写入文件内容
file.write("This is some example text#")

# 关闭文件
file.close()

在此示例中,我们将模式设置为 w,这意味着我们将使用文件绑定的文件对象覆盖任何先前的内容,并将新的文本数据写入文件。然后,我们可以使用 write() 方法写入内容,最后,使用 close() 方法关闭文件。

同样地,我们也可以用with语句来写文件,当然更推荐大家这样去做,有兴趣的朋友可以参照 with 读取文件,动手写一写用 with关键字打开文件并写入内容。

2.读写二进制文件

读写二进制文件与读写文本文件的方法类似,但需要使用不同的打开模式。以下是可用的模式:

  • 'b':二进制模式。
  • 'r+b':二进制模式,允许读取和写入文件。

请注意,如果要在打开二进制文件时启用读取和写入功能,必须使用模式 r+b。下面是一个示例:

# 打开二进制文件,模式为 读写
with open('example.bin', 'rb') as file:
    data = file.read()
    print(data)

在这个例子中,我们首先将模式设置为 r+b,这样我们就可以通过文件对象读取并写入文件,而不需要打开和关闭文件。

要写二进制文件,我们可以使用以下代码:

# 打开二进制文件,模式为只写
file = open("example.dat", "wb")

# 写入文件内容
file.write(b"Example contents for binary file.")

# 关闭文件
file.close()

在这个例子中,我们使用模式 wb 打开一个名为 "example.dat" 的二进制文件。使用 write() 方法写入二进制数据,最后使用 close() 方法关闭文件。

当我们将二进制数据写入文件后,我们可以使用以下代码读取文件:

# 打开二进制文件,模式为只读
file = open("example.dat", "rb")

# 读取文件内容
content = file.read()

# 关闭文件
file.close()

在这个例子中,我们使用模式 rb 打开一个名为 "example.dat" 的二进制文件。使用 read() 方法读取内容,最后使用 close() 方法关闭文件。
python教程 python教程:poycode.cn

3.文本和二进制文件互相转换

在 Python 中,我们可以使用 open() 方法打开一个文件,然后读取或写入该文件。在读取和写入文件时,我们可以指定模式。这样,我们可以打开文本或二进制文件,并进行读写操作。

有时,我们可能需要将一种文件类型转换为另一种文件类型。在将文本文件转换为二进制文件之前,我们需要将文本编码为字节。当我们将二进制文件读取到内存中时,我们需要将字节解码为文本。这些编码和解码过程可以使用 Python 提供的 encode()decode() 方法实现。以下是一个文本和二进制文件互相转换的示例:

# 打开文本文件并读取内容
with open("example.txt", "r") as text_file:
    text_content = text_file.read()

# 将文本编码为字节
binary_content = text_content.encode()

# 将二进制数据写入文件
with open("example.dat", "wb") as binary_file:
    binary_file.write(binary_content)

# 从二进制文件中读取二进制数据
with open("example.dat", "rb") as binary_file:
    binary_content = binary_file.read()

# 将二进制数据解码为文本
text_content = binary_content.decode()

# 将文本数据写入文件
with open("example.txt", "w") as text_file:
    text_file.write(text_content)

在这个例子中,我们首先打开文本文件并读取内容。使用 encode() 方法将文本编码为字节,并将其写入一个名为 "example.dat" 的二进制文件。然后,我们打开二进制文件并读取内容。最后使用 decode() 方法将二进制数据解码为文本,并将新的文本数据写入某个名称为 "example.txt" 的文本文件中。

4.结论

在 Python 中,读写文件是常见的 I/O 操作。我们可以使用 open() 函数来打开文件,并指定读写模式。

它支持多种模式,包括文本和二进制模式。在读取和写入文件时,我们可以使用 read()write() 方法,以及一些其他方法来操作文件数据。还可以将文本和二进制文件互相转换,这可以用于在两种文件类型之间进行转换。

上一篇:Python基础教程: 模块和包的创建及使用

本教程介绍了在 Python 中读写文件和操作文件的主要方法,包括读取和写入文本文件和二进制文件。IO操作是Python编程中非常重要的一部分,希望大家能够认真学习和掌握。

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

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

相关文章

【轴承RUL预测代码】基于DRSN(深度残差收缩网络)

DRSN(深度残差收缩网络)和完整Transformer(encoderdecoder) DRSN(深度残差收缩网络)模型的代码模型的打印训练与预测训练集的可视化:测试集的可视化: DRSN-TCN的效果 DRSN&#xff0…

贝叶斯与认知——读《贝叶斯的博弈》有感

关于对贝叶斯与认知问题的相关思考 一、贝叶斯定理二、贝叶斯与认知的本质三、经验的偏见四、总结 自古以来,人们就在思考知识来自何处,“冯翼惟象,何以识之?”,对此的思考逐渐发展成哲学的认识论分支。德国哲学家康德…

二十三种设计模式第十六篇--观察者模式

观察者模式是一种行为型设计模式,它建立了一种对象间的一对多依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。这种模式可以实现对象间的松耦合通信,提高系统的可扩展性和灵活性。 观察者模…

开源白盒 静态代码分析对比

背景 源代码安全检测是安全开发流程(SDL)中非常重要的一部分,在58集团的CI/CD流程里面临每天几千数量级的构建及发布,白盒检测的自动化能力显得极为重要。白盒扫描从漏洞发现的需求转变为了需要适应企业CI/CD流程的白盒建设需求&…

Win2008 IIS TLS1.0升级到TLS1.2或TLS1.3

最近chrome和Edege浏览器已经把TLS 1.0标记为不安全了。 如果是开发网站,而使用的TLS 1.0,则直接打开不网站,也没有醒目的提示,你很难知道问题所在,总以为是SSL安装失败了,其实是TSL版本太低了。 如果是开…

密码学学习笔记(六):Hash Functions - 哈希函数2

哈希函数是怎么构成的? Merkle–Damgrd结构 哈希函数需要能够处理任意长度的输入。许多散列函数,例如MD5、SHA-1、SHA-2,都是由构建块(称为压缩函数)组成的,这些构建块可以处理特定的块大小,并…

SSM 整合 Shiro 安全框架【快速入门】

一、搭建ssm工程&#x1f349; 1.创建工程&#x1f95d; 更改web路径 创建所需目录 2.引入依赖&#x1f95d; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"h…

LVS+Keepalived负载均衡高可用群集

目录 一、Keepalived高可用详解 1.应用场景 2.介绍和原理简介 3.主要模块和作用 二、LVSkeepalived配置实例&#xff08;抢占模式&#xff09; 1.配置NFS共享存储器 2.配置节点web服务&#xff08;两台的配置相同&#xff09; 3.配置主备LVSkeepalived负载调度器 三、非…

JAVA判断当前时间是否为节假日、周末、工作日,简单有效!

JAVA判断当前时间是否为节假日、周末、工作日 需求 有这么个需求&#xff0c;需要判断拿到的这个日期是否为节假日&#xff0c;周末&#xff0c;工作日&#xff0c;然后做剩下的操作。 话不多说&#xff0c;上代码 1.首先需要拿到节假日api 节假日API地址 2.拿到接口&…

Open3d计算点云切片

computePlane()给出三个点计算平面方程参数 设通过P1&#xff0c;P2&#xff0c;P3三点的平面方程为A(x - x1) B(y - y1) C(z - z1) 0 。化简为一般式&#xff1a;Ax By Cz D 0。 将P1(x1,y1,z1)点数值代入方程Ax By Cz D 0。 即可得到&#xff1a;Ax1 By 1 Cz1 D…

css之文字宽度自适应、width、fit、content

文章目录 效果图htmlcss解析width 效果图 html <div><div class"width_600"><div class"d_f ai_c bc_1296db padding_7 radius_8 cursor_pointer" style"width: fit-content;"><img class"width_26 height_26" …

ps通道抠图

相信我们在抠图的时候都遇到过这种问题&#xff1a; 在扣取一些像树木、毛发等类似图像的时候&#xff0c;用魔棒或者快速选择工具根本抠不完整&#xff08;图1&#xff09;&#xff0c;而且就算抠出来也是毛毛刺刺的&#xff0c;使用效果很拉跨。而通道抠图&#xff08;图2&a…

真的不想知道文档翻译在线翻译怎么弄才简单吗

从前有一个小明&#xff0c;他是一名国际商人。他需要将公司的商业计划书翻译成多种语言&#xff0c;以便在海外市场推销。但是&#xff0c;他并不会所有需要的语言&#xff0c;于是他开始寻找一种方法来进行文档翻译。终于&#xff0c;他找到了一种文档翻译的有效方法&#xf…

Dynamsoft Barcode Reader crack

Dynamsoft Barcode Reader crack SDK经过重构&#xff0c;与DynamsoftCaptureVision(DCV)体系结构集成&#xff0c;该体系结构包括&#xff1a; ImageSourceAdapter(ISA)-标准输入接口&#xff0c;用于将来自不同来源的图像数据转换为标准输入图像数据。此外&#xff0c;ISA结合…

2023第七届河南省高等学校信息安全对抗大赛-御网杯-ISCC2023线下赛-misc(详解-思路-脚本)

芜湖~ 是真累呀 原本一天的时间 硬打了一天半 还是那句话 不评价 各位道友心中自有公论 我misc手又发现一个小小的非预期 哎 没想到线下也有这种情况 欧克 以下是我自己的一些思路和解析 有什么问题或者建议随时都可以联系我 2023第七届河南省高等学校信息安全对抗大赛-御…

医疗设备中的直线导轨使用哪种润滑脂?

直线导轨属于滚动功能部件&#xff0c;看似普通&#xff0c;却是大多数医疗设备的核心功能部件之一&#xff0c;也是保障医疗设备精度的基础&#xff0c;需要具备高精度、高耐磨、高顺畅等性能&#xff0c;对生产企业的研发实力、制造工艺及技术水平提出相当大的挑战&#xff0…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之关键词优先和提前重启以减少失误处罚、合并写入缓冲区以减少惩罚(五)

优化五&#xff1a;关键词优先&#xff0c;提前重启&#xff0c;减少漏判 处理器通常一次只需要缓存块中的一个字&#xff08;word&#xff09;。不要等待整个块被加载&#xff0c;而是在请求的字到达后就立即发送给处理器&#xff0c;并让处理器继续执行&#xff0c;同时填充…

安装TESSY测试软件,装D盘就没问题,装C盘就报这个错误了

环境&#xff1a; Win10 专业版 TESSY4.3 问题描述&#xff1a; 安装TESSY测试软件&#xff0c;装D盘就没问题&#xff0c;装C盘就报这个错误了 解决方案&#xff1a; 1.看了报错说明&#xff0c;之前安装的文件夹名字有空格 2.在C盘重新建立一个文件夹&#xff0c;文件夹…

android设备树理解

一、根据lunch 查找具体的dts文件 比如&#xff1a;lunch msm8953_64-userdebug 下面的1 和 2 借鉴自&#xff1a; 如何找到kernel所用的dtsi_百度知道 1、找具体本系统需要的dts文件 然后在out/target/product/msm8953_64/obj/KERNEL_OBJ的.config 里去找这个CONFIG_ARC…

Mybatis XML文件转换SQL

toSQL Mybatis XML 转换为 SQL语句 源码地址: https://github.com/huxuekuo/toSQL 使用方法 可以在IDEA plugin 中搜索 toSQL使用源码编译后的jar, 在IDEA plugin 中添加在releases中下载jar文件 转换效果展示 <select id"findPage" parameterType"map&…