📜  Python数据持久性-文件API(1)

📅  最后修改于: 2023-12-03 15:04:39.599000             🧑  作者: Mango

Python数据持久性-文件API

简介

Python中的文件API(Application Programming Interface)提供了一种将数据存储到硬盘并在需要时检索的方法。这种方法被称为数据持久性,它可以让程序在运行时进行数据的保存和获取,保证数据在程序关闭后不会丢失。

在Python中,我们可以通过打开一个文件来进行读取、写入和操作。文件主要分为文本文件和二进制文件两种类型,文本文件使用UTF-8编码来存储数据。文件API的主要方法有:open()、close()、read()、write()、seek()等方法。

打开文件

要打开一个文件,我们可以使用内置的open()函数,并指定文件名称、模式和编码格式(如果是文本文件)。文件模式有多种,如'r'表示只读模式,'w'表示写模式、'a'表示追加模式等等。具体的文件模式如下所示:

| 模式 | 含义 | | ---- | ----------------------------------- | | 'r' | 以只读模式打开文件(默认模式) | | 'w' | 以写模式打开文件,清空文件内容 | | 'a' | 以追加模式打开文件,在文件末尾添加数据 | | 'x' | 创建一个新文件,并以写模式打开它 |

同时,我们也可以指定编码格式,可以使用UTF-8、GBK、ASCII等编码格式进行文件读写操作。如果想写入二进制文件,则不需要指定编码格式。

打开一个文本文件,如下所示:

file = open('test.txt', 'r', encoding='utf-8')

打开一个二进制文件,如下所示:

file = open('binary.dat', 'wb')
读取文件

读取文件可以使用以下方法:

file.read()
file.readline()
file.readlines()

其中,read()方法可以读取整个文件,其返回结果是文件的所有内容。readline()方法可以读取文件的一行内容,每调用一次该方法,将得到一个新的行。readlines()方法可以读取所有行内容,并返回一个包含所有行的列表。

# 读取整个文件
file = open('test.txt', 'r', encoding='utf-8')
content = file.read()
print(content)

# 读取一行
file = open('test.txt', 'r', encoding='utf-8')
line = file.readline()
print(line)

# 读取所有行
file = open('test.txt', 'r', encoding='utf-8')
lines = file.readlines()
print(lines)

# 关闭文件
file.close()
写入文件

写入文件可以使用以下方法:

file.write('Hello World!')
file.writelines(['Hello\n', 'World\n'])

其中,write()方法可以向文件写入一个字符串,writelines()方法可以向文件写入多个字符串。需要注意的是,如果使用写模式('w'),则会清空之前的内容并写入新的内容;如果使用追加模式('a'),则会在文件末尾添加新的内容。

# 写入文件
file = open('test.txt', 'a', encoding='utf-8')
file.write('Hello World!')
file.close()

# 追加多行内容
file = open('test.txt', 'a', encoding='utf-8')
file.writelines(['Hello\n', 'World\n'])
file.close()
定位文件指针

文件指针是一个特殊的变量,它指向当前正在被读取或写入的位置。使用seek()方法可以在文件中定位指针的位置。使用tell()方法可以获取文件指针的当前位置。

# 移动指针到文件开头
file = open('test.txt', 'r', encoding='utf-8')
file.seek(0)

# 获取指针当前位置
position = file.tell()

# 关闭文件
file.close()
异常处理

文件读写操作可能会出现许多异常情况,例如文件不存在、权限问题等等。因此,在进行文件操作时,我们需要使用try except语句进行异常处理。

try:
    file = open('test.txt', 'r')
    content = file.read()
except FileNotFoundError:
    print('文件不存在!')
except PermissionError:
    print('没有访问权限!')
finally:
    file.close()
总结

Python文件API提供了一种将数据持久化到硬盘上的方法,可以保证数据在程序关闭后不会丢失。对于编写需要读写文件的程序,Python的文件API是一种强大而又易于使用且易于阅读的工具。需要注意的是,在进行文件读写操作时,要使用异常处理来处理各种异常情况。