Python 中的文件打开和关闭
到目前为止,您一直在读取和写入标准输入和输出。现在,我们将了解如何使用实际的数据文件。
Python 默认提供处理文件所需的基本函数和方法。您可以使用文件对象执行大多数**文件**操作。
open 函数
在读取或写入文件之前,您必须使用 Python 内置的 open() 函数打开它。此函数创建一个**文件**对象,该对象将用于调用与其关联的其他支持方法。
语法
file object = open(file_name [, access_mode][, buffering])
以下是参数详细信息 -
- **file_name** - file_name 参数是一个字符串值,包含您要访问的文件的名称。
- **access_mode** - access_mode 确定文件打开的模式,即读取、写入、追加等。下表中给出了所有可能值的完整列表。这是一个可选参数,默认的文件访问模式是读取 (r)。
- **buffering** - 如果 buffering 值设置为 0,则不进行缓冲。如果 buffering 值为 1,则在访问文件时执行行缓冲。如果您将 buffering 值指定为大于 1 的整数,则将使用指示的缓冲区大小执行缓冲操作。如果为负,则缓冲区大小为系统默认值(默认行为)。
以下是打开文件的不同模式的列表 -
| 序号 | 模式和描述 |
|---|---|
| 1 | r 仅打开文件以进行读取。文件指针放置在文件开头。这是默认模式。 |
| 2 | rb 以二进制格式打开文件以仅供读取。文件指针放置在文件开头。这是默认模式。 |
| 3 | r+ 打开文件以进行读取和写入。文件指针放置在文件开头。 |
| 4 | rb+ 以二进制格式打开文件以进行读取和写入。文件指针放置在文件开头。 |
| 5 | w 仅打开文件以进行写入。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件以进行写入。 |
| 6 | wb 以二进制格式打开文件以仅供写入。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件以进行写入。 |
| 7 | w+ 打开文件以进行写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件以进行读取和写入。 |
| 8 | wb+ 以二进制格式打开文件以进行写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件以进行读取和写入。 |
| 9 | a 打开文件以进行追加。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,则创建一个新文件以进行写入。 |
| 10 | ab 以二进制格式打开文件以进行追加。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,则创建一个新文件以进行写入。 |
| 11 | a+ 打开文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果文件不存在,则创建一个新文件以进行读取和写入。 |
| 12 | ab+ 以二进制格式打开文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果文件不存在,则创建一个新文件以进行读取和写入。 |
文件对象属性
打开文件并获得一个文件对象后,您可以获取与该文件相关的各种信息。
以下是与文件对象相关的所有属性的列表 -
| 序号 | 模式和描述 |
|---|---|
| 1 | file.closed 如果文件已关闭,则返回 True,否则返回 False。 |
| 2 | file.mode 返回打开文件时使用的访问模式。 |
| 3 | file.name 返回文件名称。 |
| 4 | file.softspace 如果 print 需要显式空格,则返回 False,否则返回 True。 |
示例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace输出
这将产生以下结果 -
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
close() 方法
文件对象的 close() 方法刷新任何未写入的信息并关闭文件对象,此后无法再进行写入。
当文件的引用对象重新分配给另一个文件时,Python 会自动关闭文件。最好使用 close() 方法关闭文件。
语法
fileObject.close()
示例
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
# Close opend file
fo.close()输出
这将产生以下结果 -
Name of the file: foo.txt
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP