Python 30 天进阶:文件写入与指针操控
在掌握了文件读取的关键技能后,今天我们将深入学习文件写入与追加操作,以及如何灵活地操控文件指针,进一步拓展我们在文件处理领域的能力边界,从而能够更加自如地对文件内容进行创建、更新与精准定位操作。
一、文件写入与追加操作
- 写入模式('w'):
当使用 open() 函数以写入模式('w')打开文件时,如果文件已存在,其原有内容将被清空,然后可以使用 write() 方法向文件写入新的数据。例如:
# 以写入模式打开文件,如果文件不存在则创建
with open('new_text.txt', 'w') as file:
file.write("这是写入文件的第一行内容。\n")
file.write("这是第二行内容。")
在上述示例中,我们创建了一个名为 new_text.txt 的文件,并分两行写入了内容。注意每行末尾的换行符 \n,它用于在文件中换行显示内容。
- 追加模式('a'):
若以追加模式('a')打开文件,新写入的内容会被添加到文件的末尾,而不会影响原有的数据。例如:
# 以追加模式打开已存在的文件
with open('new_text.txt', 'a') as file:
file.write("\n这是追加的新一行内容。")
这样,新的内容就会被添加到 new_text.txt 文件已有内容的后面。
二、文件指针与 seek () 函数
文件指针是一个指示当前文件读取或写入位置的标记。在 Python 中,可以使用 seek() 函数来移动文件指针,从而实现从文件的特定位置开始进行读取或写入操作。
seek() 函数接受两个参数:第一个参数是偏移量,表示要移动的字节数;第二个参数是可选的,用于指定移动的起始位置,0 表示从文件开头,1 表示从当前位置,2 表示从文件末尾(但在文本文件中不支持以 2 为起始位置的移动)
例如,假设我们有一个已存在的文件 example.txt,内容如下:
第一行内容
第二行内容
第三行内容
我们可以使用以下代码来读取并修改文件内容:
with open('example.txt', 'r+') as file: # 'r+' 模式允许读写操作
# 读取第一行内容并输出
line1 = file.readline()
print(line1)
# 将文件指针移动到文件开头后 10 个字节处
file.seek(10)
# 写入新的内容覆盖原有的部分内容
file.write("新修改的内容")
# 将文件指针移动到文件末尾
file.seek(0, 2)
# 在末尾追加新的一行
file.write("\n这是在末尾追加的新行。")
在上述代码中,首先以 r+ 模式打开文件,读取了第一行内容后,使用 seek(10) 将文件指针移动到从文件开头起第 10 个字节的位置,然后写入新内容,覆盖了原有的部分内容。接着使用 seek(0, 2) 将文件指针移动到文件末尾,再追加一行新的内容。
通过今天对文件写入、追加以及文件指针操作的学习,我们在文件处理的能力上得到了显著提升。无论是创建日志记录文件、更新配置文件还是对特定格式文件进行精准修改,这些技能都将成为我们编程工具箱中的得力工具,助力我们构建更加复杂和高效的应用程序。
#文件写入追加# #文件指针操控# #Python 文件处理进阶# #数据持久化操作# #文本文件更新# #编程文件技巧#