【无标题】

本文介绍了Python中如何进行文本和二进制文件的读写操作,包括使用open()函数的不同模式,如'r'、'w'、'a'、'b'等。示例代码展示了读取、写入文本文件,以及将文本文件转换为二进制文件和反之的过程,强调了使用with语句进行文件操作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python读写文本文件、读写二进制文件

1.读写文本文件

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

‘r’:只读模式。
‘w’:只写模式。
‘a’:追加模式。
‘x’:独占模式,只有在文件不存在时才创建。
‘b’:二进制模式。
‘t’:文本模式。
默认情况下,‘r’ 模式打开的是文本文件模式,如果我们需要打开二进制文件,则需要使用 ‘rb’ 模式。下面是一个读取文本文件的例子:

# 打开文件
file = open("1.txt", 'r',-1, encoding ="utf-8" )
# 读取文件内容
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()

使用 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关键字打开文件并写入内容。

我们还可以更进一步,使用 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() 方法关闭文件。

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” 的文本文件中。

参考

1 https://zhuanlan.zhihu.com/p/631220387

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xzjiang_365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值