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 的整数,则将使用指示的缓冲区大小执行缓冲操作。如果为负,则缓冲区大小为系统默认值(默认行为)。

以下是打开文件的不同模式的列表 -

序号模式和描述
1r
仅打开文件以进行读取。文件指针放置在文件开头。这是默认模式。
2rb
以二进制格式打开文件以仅供读取。文件指针放置在文件开头。这是默认模式。
3r+
打开文件以进行读取和写入。文件指针放置在文件开头。
4rb+
以二进制格式打开文件以进行读取和写入。文件指针放置在文件开头。
5w
仅打开文件以进行写入。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件以进行写入。
6wb
以二进制格式打开文件以仅供写入。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件以进行写入。
7w+
打开文件以进行写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件以进行读取和写入。
8wb+
以二进制格式打开文件以进行写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件以进行读取和写入。
9a
打开文件以进行追加。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,则创建一个新文件以进行写入。
10ab
以二进制格式打开文件以进行追加。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,则创建一个新文件以进行写入。
11a+
打开文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果文件不存在,则创建一个新文件以进行读取和写入。
12ab+
以二进制格式打开文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果文件不存在,则创建一个新文件以进行读取和写入。

文件对象属性

打开文件并获得一个文件对象后,您可以获取与该文件相关的各种信息。

以下是与文件对象相关的所有属性的列表 -

序号模式和描述
1file.closed
如果文件已关闭,则返回 True,否则返回 False。
2file.mode
返回打开文件时使用的访问模式。
3file.name
返回文件名称。
4file.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

更新时间: 2020-01-30

10K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.