在Python中,文件文本操作是非常重要的,主要有以下几个原因:
python中使用open()
函数打开文件,例如:
file = open("filename.txt", "r") # "r"表示读取模式
当然, 除了“r”这种模式,还有许多其他的模式,下面请看表格
模式 | 解释 |
r | 打开文件并读取数据 |
w | 打开文件并写入数据 |
a | 打开文件并添加数据 |
x | 独占创建模式。如果文件不存在,会创建一个新文件。如果文件已经存在,操作会失败 |
r+ / w+ | 打开文件,并读取和写入数据 |
a+ | 打开文件,并添加和读取数据 |
打开文件后也要关闭文件哦
file = open("filename.txt", "r")
file.close()
对比一下r+、w+、a+,看例子:
r+和w+的效果都是一样的,运行一个:
#文件的输入输出
file = open("filename.txt", "r+")
file.write("Hello, World!")
file.close()
这里每次写入“hello world”都会覆盖之前的内容,所以无论运行几次都只有一个数据。
a+:
#文件的输入输出
file = open("filename.txt", "a+")
file.write("Hello, World!")
file.close()
“a+”是在之前的基础上再次写入数据,所以每次运行的话,之前的信息都会保留。这里我运行了三次,也就是写入了三次的“hello world”。
从文件中读取内容:
通过file.read()函数,可以将文件中的全部内容输出出来 ,如下:
file = open("filename.txt", "r")
read1=file.read()
print(read1)
读取文件中前20个字符:
file = open("filename.txt", "r")
read1=file.read(20)
print(read1)
print(len(read1))
这里呢,"W"前有一个空格键,之后再加上一个换行字符,正好20个字符。
还有一个可以一行一行读出数据的方法:
file = open("filename.txt", "r")
read1=file.readlines()
print(read1)
print(len(read1))
它将六行数据算作六个字符串,放入到一个列表中。
我们也可以除掉后面的\n字符:line.strip(),
它是一个字符串方法,用于去除字符串两端的空白字符(例如空格、制表符、换行符等)。
file = open("filename.txt", "r")
read1=file.readlines()
for line in read1:
print(line.strip())
print(len(read1))
二进制文件是一种计算机文件,其中包含的数据或程序指令以二进制形式编写。在计算机科学中,数据不仅包括字符,还有数字、颜色、音频、视频等。由于计算机内部只能处理二进制数据(即0和1),因此所有其他类型的数据都必须以二进制形式存储。
二进制文件有很多种类型,包括图片、音频、视频、可执行程序等。这些文件通常不能被文本编辑器直接打开或阅读,但可以使用特定的软件或程序来读取和编辑。
模式 | 解释 |
rb | 打开二进制文件并读取数据 |
wb | 打开二进制文件并写入数据 |
ab | 打开二进制文件并添加数据 |
rb+ | 打开二进制文件,并读取和写入数据 |
wb+ | 打开二进制文件,并读取和写入数据 |
ab+ | 打开二进制文件,并添加和读取数据 |
打开一幅图片试试看:
file = open("test1.png", "rb+")
read1=file.readlines()
print(read1)
二进制文件的写入:
import struct
file = open("test1.bat", "wb")
data=struct.pack('iii',5,2,3)
二进制读取:
import struct
# 以二进制模式打开名为"test1.dat"的文件
file = open("test1.dat","rb")
# 使用struct模块的calcsize方法来计算一个整数(在这里是"i")所占的字节大小
size = struct.calcsize("i")
# 从文件中读取size字节的数据
bytes_read = file.read(size)
# 当读取的数据不为空时,循环执行以下操作
while bytes_read:
# 使用struct模块的unpack方法将读取的字节数据转换为整数
value = struct.unpack("i",bytes_read)
# 取转换后的整数列表中的第一个值(因为可能存在多个整数,但这里只取第一个)
value = value[0]
# 打印这个整数值,并在其后添加一个空格
print(value, end=" ")
# 再次从文件中读取size字节的数据
bytes_read = file.read(size)
# 关闭文件
file.close()