如何实现Python中的文件读写操作?
文件读写是Python中的基础操作之一,因为在很多应用程序中,我们需要从文件中读取数据或者把数据写入到文件中。Python提供了一套完整的文件读写操作的API,让我们能够方便地进行文件读写操作。下面我们将详细介绍Python中的文件读写操作。
一、文件对象
首先,我们需要通过类似于“open('filename', 'mode')”的函数来打开文件,这个函数返回一个文件对象。可以对文件对象进行读写操作。在Python中,文件对象有以下几种常用的方法:
1. read(size): 从文件中读取size个字节的数据,如果省略size,则读到文件末尾。
2. readline(): 从文件中读取一行数据,包括行末的换行符。
3. readlines(): 从文件中读取多行数据,返回一个列表,每个元素对应一行数据。
4. write(str): 向文件中写入字符串str,返回写入的字符数。
5. writelines(lines): 向文件中写入多行数据,每行数据以字符串形式存储在列表lines中。
6. close(): 关闭文件。
二、文件操作模式
在使用open函数时,需要指定文件打开模式。Python中的文件操作模式有以下几种:
1. r:只读模式,从文件开头读取数据,默认模式。
2. w:写入模式,清空原始数据,从头开始写入数据。
3. a:追加模式,从文件末尾开始写入数据,可以往文件中添加新的数据,而不会在原来数据的基础上覆盖。
4. x:写入模式,如果文件已存在,则会报错。
5. b:二进制模式,用于读取二进制文件的数据。
6. t:文本模式,用于读取文本文件的数据。
三、文件读取操作
1. 读取整个文件
方法一:
f = open('filename')
print(f.read())
f.close()
方法二:
with open('filename') as f:
print(f.read())
2. 读取文件某行或某行之前的数据
方法一:
f = open('filename')
# 读取前10个字符
print(f.read(10))
# 读取第2行的数据
for i in range(2):
line = f.readline()
print(line)
f.close()
方法二:
with open('filename') as f:
# 读取前10个字符
print(f.read(10))
# 读取第2行的数据
for i in range(2):
line = f.readline()
print(line)
3. 读取整个文件每一行的数据
方法一:
f = open('filename')
for line in f:
print(line)
f.close()
方法二:
with open('filename') as f:
for line in f:
print(line)
4. 读取文件某行到某行之间的数据
f = open('filename')
# 读取第2行到第5行的数据(包括第5行)
for i in range(2, 6):
line = f.readline()
if i == 5:
print(line)
f.close()
四、文件写入操作
1. 写入字符串
f = open('filename', 'w')
f.write('hello')
f.write('python')
f.close()
2. 写入多行数据
data = ['hello', 'python']
with open('filename', 'w') as f:
f.writelines(data)
注意:writelines函数只能写入字符串,如果要写入其他类型的数据,需要先转换成字符串。
五、文件读写错误处理
在文件读写时,可能会出现各种错误,比如文件不存在,没有足够的权限访问文件等等。为了避免这些错误,我们需要进行异常处理。
try:
with open('filename') as f:
print(f.read())
except FileNotFoundError:
print('File Not Found Error')
except PermissionError:
print('Permission Error')
六、总结
Python中的文件读写操作非常方便,只需打开文件,然后对文件对象调用不同的方法即可。在遇到文件读写错误时,需要进行异常处理,保证程序的正常运行。文件读写操作对于日常编程是非常必要的,能够方便的进行文件读写操作,也是Python的一个优势。
