文件操作与异常处理¶
文件读写¶
在Python中,文件操作是处理数据的重要部分。无论是读取配置文件、处理日志文件,还是保存用户数据,文件操作都是必不可少的。本节将详细介绍如何在Python中打开、读取、写入和关闭文件。
1. 打开文件¶
在Python中,使用内置的open()
函数来打开文件。open()
函数的基本语法如下:
file_name
:文件的路径(相对路径或绝对路径)。mode
:打开文件的模式,如只读、写入、追加等。
常见的文件模式包括:
'r'
:只读模式(默认)。'w'
:写入模式,会覆盖文件内容。'a'
:追加模式,在文件末尾添加内容。'b'
:二进制模式,用于处理非文本文件(如图片、视频等)。't'
:文本模式(默认)。'+'
:读写模式。
2. 读取文件¶
一旦文件被打开,可以使用多种方法来读取文件内容。
2.1 读取整个文件¶
使用read()
方法可以一次性读取整个文件内容。
# 打开文件
file = open('example.txt', 'r')
# 读取文件内容
content = file.read()
# 打印文件内容
print(content)
# 关闭文件
file.close()
注意:使用read()
方法时,文件内容会被加载到内存中,因此对于大文件,这种方法可能会导致内存不足。
2.2 逐行读取文件¶
使用readline()
方法可以逐行读取文件内容。
# 打开文件
file = open('example.txt', 'r')
# 读取第一行
line1 = file.readline()
print(line1)
# 读取第二行
line2 = file.readline()
print(line2)
# 关闭文件
file.close()
2.3 读取所有行¶
使用readlines()
方法可以读取文件的所有行,并将其存储在一个列表中。
# 打开文件
file = open('example.txt', 'r')
# 读取所有行
lines = file.readlines()
# 打印每一行
for line in lines:
print(line)
# 关闭文件
file.close()
3. 写入文件¶
写入文件与读取文件类似,但需要使用写入模式('w'
)或追加模式('a'
)。
3.1 写入文件¶
使用write()
方法可以将字符串写入文件。
# 打开文件(如果文件不存在,会自动创建)
file = open('example.txt', 'w')
# 写入内容
file.write('Hello, World!\n')
file.write('This is a new line.')
# 关闭文件
file.close()
注意:使用'w'
模式时,如果文件已存在,其内容会被覆盖。
3.2 追加内容¶
使用'a'
模式可以在文件末尾追加内容。
# 打开文件
file = open('example.txt', 'a')
# 追加内容
file.write('\nThis line is appended.')
# 关闭文件
file.close()
4. 关闭文件¶
在文件操作完成后,务必使用close()
方法关闭文件。关闭文件可以释放系统资源,并确保所有数据都被正确写入文件。
5. 使用with
语句¶
为了确保文件在使用后正确关闭,推荐使用with
语句。with
语句会在代码块执行完毕后自动关闭文件,即使在代码块中发生了异常。
6. 处理异常¶
在文件操作中,可能会遇到各种异常情况,如文件不存在、权限不足等。使用try-except
语句可以捕获并处理这些异常。
try:
with open('nonexistent_file.txt', 'r') as file:
content = file.read()
print(content)
except FileNotFoundError:
print('文件不存在!')
except PermissionError:
print('没有权限访问文件!')
7. 练习题¶
练习1:读取文件并统计行数¶
编写一个程序,读取一个文本文件,并统计文件中的行数。
提示:使用readlines()
方法读取所有行,然后使用len()
函数统计行数。
练习2:写入用户输入到文件¶
编写一个程序,提示用户输入多行文本,并将这些文本写入到一个文件中。用户可以输入exit
来结束输入。
提示:使用while
循环不断获取用户输入,直到用户输入exit
。
练习3:处理大文件¶
编写一个程序,逐行读取一个大文件(如日志文件),并统计文件中包含特定关键字的行数。
提示:使用readline()
方法逐行读取文件,避免一次性加载整个文件到内存中。
8. 总结¶
- 使用
open()
函数打开文件,并指定适当的模式(如'r'
、'w'
、'a'
等)。 - 使用
read()
、readline()
、readlines()
等方法读取文件内容。 - 使用
write()
方法写入文件内容。 - 使用
close()
方法关闭文件,或使用with
语句自动关闭文件。 - 使用
try-except
语句处理文件操作中可能出现的异常。
通过掌握这些基本操作,你将能够在Python中有效地处理文件,为更复杂的应用打下坚实的基础。