Python小白学习教程从入门到入坑------第二十八课 文件基础操作文件读写(语法进阶)
目录
文件基础操作
1.1 什么是文件?
1.2 打开文件
1.3 读取文件
1.4 写入文件
1.5 关闭文件
1.6 文件指针和位置
1.7 文件模式
文件基础操作
1.1 什么是文件?
在Python中,"文件"这一术语主要指的是存储在计算机存储设备(例如硬盘、SSD或网络驱动器)上的数据集合。这些数据集合可能是文本文件、二进制文件、图像文件、音频文件、视频文件或任何其他格式的文件。Python提供了一套完整的文件操作API,允许开发者读取、写入、追加、修改以及删除文件内容。
Python中的文件操作通常涉及以下几个步骤:
打开文件:使用内置的open函数,可以指定文件名和模式(如读、写、追加等)来打开文件。open函数返回一个文件对象,该对象包含用于文件操作的各种方法
读取文件:如果文件以读模式打开,可以使用文件对象的read、readline或readlines等方法来读取文件内容
写入文件:如果文件以写模式或追加模式打开,可以使用文件对象的write方法将字符串数据写入文件
关闭文件:完成文件操作后,应使用close方法关闭文件,或更推荐使用with语句来确保文件在操作完成后自动关闭
文件指针操作:文件对象还提供了seek和tell方法,允许在文件中移动读取/写入位置,以及获取当前位置
文件模式:open函数允许指定多种模式,包括文本模式和二进制模式,以及只读、只写、读写、追加等
异常处理:在进行文件操作时,可能会遇到各种异常(如文件不存在、权限不足等),因此通常需要使用try...except语句来处理这些潜在错误
在文件的基础操作中也有一些注意事项如下:
1、在读取或写入文件时,应确保文件存在且具有适当的权限
2、使用with语句可以简化文件的管理,并自动处理异常情况下的资源释放
3、在写入文件时,如果文件不存在,写模式('w')会创建新文件,而读模式('r')则会引发FileNotFoundError异常
4、追加模式('a')用于在文件末尾添加内容,而不会覆盖原有内容。如果文件不存在,追加模式也会创建新文件
1.2 打开文件
使用open函数可以打开一个文件,并返回一个文件对象。
open函数的基本语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
其中,最常用的参数是file(文件名或文件路径)和mode(模式)。模式决定了是以什么方式打开文件,比如读('r')、写('w')、追加('a')等。如果不指定模式,默认是'r'(只读)
eg:
# 打开文件以读取
file = open('example.txt', 'r')
# 打开文件以写入(会覆盖文件内容)
file_write = open('example.txt', 'w')
# 打开文件以追加(在文件末尾添加内容)
file_append = open('example.txt', 'a')
1.3 读取文件
文件对象提供了多种方法来读取文件内容:
read(size=-1):读取整个文件内容(如果指定了size,则读取size个字符)
readline():读取文件的一行
readlines():读取文件的所有行,并返回一个包含每行内容的列表(包括行尾的换行符,除非文件是以二进制模式打开的)
eg:
# 读取整个文件内容
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=''防止添加额外的换行符(如果文件中每行末尾有换行符的话)
1.4 写入文件
使用文件对象的write方法可以将字符串写入文件。如果文件以写模式('w')或追加模式('a')打开,则可以写入内容
eg:
# 写入内容到文件(会覆盖原有内容)
with open('example.txt', 'w') as file:
file.write('Hello, World!\n')
file.write('This is a new line.\n')
# 追加内容到文件末尾
with open('example.txt', 'a') as file:
file.write('This is an appended line.\n')
1.5 关闭文件
文件操作完成后,应该关闭文件以释放系统资源。这可以通过调用文件对象的close方法来实现。但是,更好的做法是使用with语句,它会在代码块执行完毕后自动关闭文件,即使发生异常也会确保文件被正确关闭。
eg:
# 使用with语句自动关闭文件
with open('example.txt', 'r') as file:
# 文件操作
content = file.read()
# 文件在这里已经自动关闭,无需调用file.close()
1.6 文件指针和位置
1、seek(offset, whence=0):移动文件指针到指定位置。offset是偏移量,whence是参考点,可以是0(文件开头,默认)、1(当前位置)或2(文件末尾)
2、tell():返回当前文件指针的位置
eg:
# 移动文件指针并读取内容
with open('example.txt', 'r') as file:
file.seek(7) # 移动到文件的第8个字节(索引从0开始)
print(file.tell()) # 输出当前位置
print(file.read()) # 从当前位置读取剩余内容
1.7 文件模式
除了基本的读写模式('r'、'w'、'a'),Python还支持二进制模式('b')和更新模式('+')
二进制模式:以二进制方式打开文件,例如'rb'(读二进制)、'wb'(写二进制)
更新模式:允许读写文件,例如'r+'(读/写,文件指针在文件开头)、'w+'(写/读,覆盖文件内容,文件指针在文件开头)、'a+'(读/写,追加内容,文件指针在文件末尾)
eg:
# 以二进制模式读取文件
with open('example.bin', 'rb') as file:
binary_content = file.read()
# 处理二进制内容
# 以更新模式打开文件
with open('example.txt', 'r+') as file:
# 读取文件内容
content = file.read()
# 移动文件指针到文件开头并写入内容
file.seek(0)
file.write('New content at the beginning.\n')
# 继续读取或写入内容