前言
这是本系列的第十四章节内容,也是最后一章,它的名字为《文件操作》。
一、定义
- 文件操作是计算机编程和日常使用中不可或缺的一部分,它涉及对存储在硬盘或其他存储设备上的数据进行读取、写入、修改、删除等操作。
- 文件操作的基本步骤通常包括打开文件、操作文件内容(读操作、写操作等)、关闭文件。
二、创建文件
- ‘w’ 模式创建文件。
代码如下(示例):
# 打开(如果文件不存在则创建)文件以写入内容
with open('example.txt', 'w') as file:
file.write('Hello, this is a new file.\n')
file.write('Writing another line.')
三、打开文件
- 使用open()函数打开文件。该函数接受文件名和模式作为参数,并返回一个文件对象。
代码如下(示例):
# 打开文件以读取内容
file = open('example.txt', 'r')
# 打开文件以写入内容,如果文件不存在则创建
file = open('example.txt', 'w')
# 打开文件以追加内容,如果文件不存在则创建
file = open('example.txt', 'a')
# 打开二进制文件
# 例如,读取图片,假设已有名为 “image.png” 的图片
# 注意:使用with语句打开文件是一种好习惯,因为它会在代码块执行完毕后自动关闭文件,即使发生异常
with open('image.png', 'rb') as img_file:
img_data = img_file.read()
四、读取文件
- read(size=-1):读取文件内容,size 是可选的,表示要读取的字节数。如果未指定或为负值,则读取整个文件。
- readline(size=-1):读取文件中的一行。
- readlines(hint=-1):读取文件中的所有行,并将它们作为字符串列表返回。hint参数控制读取的行数,但实际上这个参数并不总是有效。
代码如下(示例):
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 逐行读取
with open('example.txt', 'r') as file:
for line in file:
print(line, end='') # end='' 用于避免打印额外的换行符
五、写入文件
- write(s):将字符串 s 写入文件。
- writelines(lines):写入一个字符串列表,但不会自动在字符串之间添加换行符。
代码如下(示例):
with open('example.txt', 'w') as file:
file.write('Hello, World!\n')
file.writelines(['This is a line.\n', 'So is this.\n'])
六、文件指针
- 文件操作时,有一个文件指针(也称为读取/写入指针)指向文件中的当前位置。read() 、readline() 和 write() 等方法会移动这个指针。你可以使用 seek(offset, whence=0) 方法来移动指针,其中 offset 表示要移动的字节数,whence 表示从哪个位置开始移动(0表示文件开头,1表示当前位置,2表示文件末尾)。
代码如下(示例):
# 此时,example.txt 的内容如下
# Hello, World!
# This is a line.
# So is this.
with open('example.txt', 'r+') as file:
file.seek(5) # 移动到文件的第5个字节处
content = file.read() # 从当前位置读取到文件末尾
print(content)
输出如下(示例):
, World!
This is a line.
So is this.
七、关闭文件
- 使用 with 语句可以自动关闭文件,但如果不使用with语句,则应该使用文件对象的 close() 方法来手动关闭文件。
代码如下(示例):
file = open('example.txt', 'r')
# ... 执行文件操作 ...
file.close() # 关闭文件
八、小结
- 当以写入(‘w’)模式打开文件时,如果文件已存在,其内容将被覆盖。
- 当以追加(‘a’)模式打开文件时,写入的数据将添加到文件末尾,而不会覆盖现有内容。
- 在处理大文件时,使用 readline() 或迭代文件对象(for line in file:)来逐行读取文件,以避免一次性将文件内容全部加载到内存中。
- 对于二进制文件,应使用 ‘rb’ 、‘wb’ 或 ‘ab’ 等模式打开文件,并使用 bytes 类型的数据进行读写操作。
总结
以上,就是 Python 文件操作的全部内容。随着本章的结束,本系列“从入门到放弃”也就告一段落了,希望好好学,好好做,天天开心。