Python 文件输入/输出——读写文件

在 Python 中, IO 模块提供了三种 IO 操作的方法;原始二进制文件、缓冲二进制文件和文本文件。创建文件对象的规范方法是使用open()函数。

任何文件操作都可以通过以下三个步骤来执行:

  1. 使用内置的 open() 功能打开文件获取文件对象。有不同的访问模式,您可以在使用打开()功能打开文件时指定。
  2. 使用从open()函数检索的文件对象执行读、写、追加操作。
  3. 关闭并释放文件对象。

正在读取文件

文件对象包括以下从文件中读取数据的方法。

  • read(chars):从当前位置开始读取指定数量的字符。
  • readline():读取从当前读取位置开始直到换行符的字符。
  • readlines():读取所有行,直到文件结束,并返回一个 list 对象。

以下C:\myfile.txt文件将用于所有读写文件的例子。

C:\myfile.txt

This is the first line. 
This is the second line.
This is the third line. 

以下示例使用read(chars)方法执行读取操作。

Example: Reading a File

>>> f = open('C:\myfile.txt') # opening a file
>>> lines = f.read() # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close() # closing file object 

上图,f = open('C:\myfile.txt')从当前目录打开默认读取模式下的myfile.txt,返回一个文件对象。 f.read()函数读取所有内容,直到 EOF 为字符串。如果在read(chars)方法中指定字符大小参数,那么它将只读取那么多字符。 f.close()将冲水并关闭溪流。

阅读一行

下面的示例演示如何从文件中读取一行。

Example: Reading Lines

>>> f = open('C:\myfile.txt') # opening a file
>>> line1 = f.readline() # reading a line
>>> line1
'This is the first line. \n'
>>> line2 = f.readline() # reading a line
>>> line2
'This is the second line.\n'
>>> line3 = f.readline() # reading a line
>>> line3
'This is the third line.'
>>> line4 = f.readline() # reading a line
>>> line4
''
>>> f.close() # closing file object 

如您所见,我们必须在'r'模式下打开文件。readline()方法将返回第一行,然后指向文件中的第二行。

阅读所有行

以下使用readlines()功能读取所有行。

Example: Reading a File

>>> f = open('C:\myfile.txt') # opening a file
>>> lines = f.readlines() # reading all lines
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close() # closing file object 

文件对象有一个内置的迭代器。以下程序逐行读取给定的文件,直到StopIteration上升,即达到 EOF。

Example: File Iterator

f=open('C:\myfile.txt')
while True:
    try:
        line=next(f)
        print(line)
    except StopIteration:
        break
f.close() 

使用 for循环可以轻松读取文件。

Example: Read File using the For Loop

f=open('C:\myfile.txt')
for line in f:
    print(line)
f.close() 

Output

This is the first line. 
This is the second line.
This is the third line. 

读取二进制文件

使用open()功能中的“rb”模式读取二进制文件,如下图所示。

Example: Reading a File

>>> f = open('C:\myimg.png', 'rb') # opening a binary file
>>> content = f.read() # reading all lines
>>> content
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x08\x00\x00\x00\x08\x08\x06
\x00\x00\x00\xc4\x0f\xbe\x8b\x00\x00\x00\x19tEXtSoftware\x00Adobe ImageReadyq
\xc9e\x00\x00\x00\x8dIDATx\xdab\xfc\xff\xff?\x03\x0c0/zP\n\xa4b\x818\xeco\x9c
\xc2\r\x90\x18\x13\x03*8\t\xc4b\xbc\x01\xa8X\x07$\xc0\xc8\xb4\xf0>\\\x11P\xd7?
\xa0\x84\r\x90\xb9\t\x88?\x00q H\xc1C\x16\xc9\x94_\xcc\x025\xfd2\x88\xb1\x04
\x88\x85\x90\x14\xfc\x05\xe2( \x16\x00\xe2\xc3\x8c\xc8\x8e\x84:\xb4\x04H5\x03
\xf1\\ .bD\xf3E\x01\x90\xea\x07\xe2\xd9\xaeB`\x82'
>>> f.close() # closing file object 

写入文件

文件对象提供了以下写入文件的方法。

  • 写入:将字符串写入流,并返回写入的字符数。
  • writelines(行):向流中写入一个行列表。每行的末尾必须有一个分隔符。

创建新文件并写入

如果新文件不存在或覆盖到现有文件,则创建新文件。

Example: Create or Overwrite to Existing File

>>> f = open('C:\myfile.txt','w')
>>> f.write("Hello") # writing to file
5
>>> f.close()

# reading file
>>> f = open('C:\myfile.txt','r') 
>>> f.read()
'Hello'
>>> f.close() 

在上面的例子中,f=open("myfile.txt","w")语句以写模式打开myfile.txtopen()方法返回文件对象并将其分配给变量f'w'指定文件应该是可写的。 接下来,f.write("Hello")覆盖myfile.txt文件的现有内容。它返回写入文件的字符数,在上面的例子中是 5。 最后,f.close()关闭文件对象。

追加到现有文件

下面通过在open()方法中传递'a''a+'模式,在现有文件的末尾追加内容。

Example: Append to Existing File

>>> f = open('C:\myfile.txt','a')
>>> f.write(" World!")
7
>>> f.close()

# reading file
>>> f = open('C:\myfile.txt','r') 
>>> f.read()
'Hello World!'
>>> f.close() 

写多行

Python 提供了writelines()方法,将列表对象的内容保存在文件中。 由于换行符不会自动写入文件,因此必须作为字符串的一部分提供。

Example: Write Lines to File

>>> lines=["Hello world.\n", "Welcome to TutorialsTeacher.\n"]
>>> f=open("D:\myfile.txt", "w")
>>> f.writelines(lines)
>>> f.close() 

以“w”模式或“a”模式打开文件只能写入,不能读取。同样,“r”模式只允许读,不允许写。为了同时执行读取/追加操作,请使用“a+”模式。

写入二进制文件

open()功能默认以文本格式打开文件。要以二进制格式打开文件,请将'b'添加到模式参数中。 因此"rb"模式以二进制格式打开文件进行读取,而"wb"模式以二进制格式打开文件进行写入。与文本文件不同,二进制文件不可读。使用任何文本编辑器打开时,数据都无法识别。

下面的代码将数字列表存储在二进制文件中。该列表在写入前首先转换为字节数组。内置函数 bytearray() 返回对象的字节表示。

Example: Write to a Binary File

f=open("binfile.bin","wb")
num=[5, 10, 15, 20, 25]
arr=bytearray(num)
f.write(arr)
f.close() 

原创文章,作者:I29TS,如若转载,请注明出处:https://www.506064.com/n/128858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
I29TSI29TS
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29

发表回复

登录后才能评论