Python - 文件处理


当我们使用任何计算机应用程序时,都需要提供一些数据。在应用程序运行之前,数据存储在计算机的主内存 (RAM) 中。此后,RAM 中的存储内容被擦除。

我们希望以这样的方式存储它,以便在需要时可以在持久介质(例如磁盘文件)中检索它。

Python 使用内置的input()print()函数来执行标准输入/输出操作。Python程序通过sys模块中定义的标准流对象stdin和stdout与这些IO设备进行交互。

input() 函数从标准输入流设备(即键盘)读取字节。因此,以下两个语句都会读取用户的输入。

name = input()
#is equivalent to
import sys
name = sys.stdin.readline()

另一方面,print() 函数将数据发送到标准输出流设备,即显示监视器。它是一个模拟 stdout 对象的 write() 方法的便利函数。

print (name)

#is equivalent to
import sys
sys.stdout.write(name)

任何与输入和输出流交互的对象都称为文件对象。Python 的内置函数 open() 返回一个文件对象。

open() 函数

该函数创建一个文件对象,该对象将用于调用与其关联的其他支持方法。

句法

file object = open(file_name [, access_mode][, buffering])

以下是参数详细信息 -

  • file_name - file_name 参数是一个字符串值,其中包含要访问的文件的名称。

  • access_mode - access_mode 确定文件打开的模式,即读取、写入、追加等。下表中给出了可能值的完整列表。这是一个可选参数,默认的文件访问模式是 read (r)。

  • buffering - 如果缓冲值设置为 0,则不会发生缓冲。如果缓冲值为 1,则在访问文件时执行行缓冲。如果将缓冲值指定为大于 1 的整数,则将以指定的缓冲区大小执行缓冲操作。如果为负数,则缓冲区大小为系统默认值(默认Behave)。

文件打开方式

以下是文件打开模式 -

先生。 模式和说明
1

r

打开文件以只读方式。文件指针位于文件的开头。这是默认模式。

2

RB

打开二进制格式的只读文件。文件指针位于文件的开头。这是默认模式。

3

r+

打开文件以进行读取和写入。文件指针放置在文件的开头。

4

RB+

打开一个文件以二进制格式进行读写。文件指针放置在文件的开头。

5

w

打开文件仅用于写入。如果文件存在则覆盖该文件。如果该文件不存在,则创建一个新文件进行写入。

6

以二进制模式打开文件

7

t

以文本模式打开文件(默认)

8

+

打开文件进行更新(读和写)

9

工作组

打开仅以二进制格式写入的文件。如果文件存在则覆盖该文件。如果该文件不存在,则创建一个新文件进行写入。

10

瓦+

打开文件以进行写入和读取。如果文件存在,则覆盖现有文件。如果该文件不存在,则创建一个新文件进行读写。

11

WB+

打开一个文件以二进制格式进行写入和读取。如果文件存在,则覆盖现有文件。如果该文件不存在,则创建一个新文件进行读写。

12

A

打开文件进行追加。如果文件存在,则文件指针位于文件末尾。也就是说,该文件处于追加模式。如果该文件不存在,则会创建一个新文件进行写入。

13

ab

打开一个文件以二进制格式追加。如果文件存在,则文件指针位于文件末尾。也就是说,该文件处于追加模式。如果该文件不存在,则会创建一个新文件进行写入。

14

一个+

打开文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果该文件不存在,则会创建一个新文件以供读写。

15

抗体+

打开文件以二进制格式追加和读取。如果文件存在,则文件指针位于文件末尾。文件以追加模式打开。如果该文件不存在,则会创建一个新文件以供读写。

16

X

打开以独占创建,如果文件已存在则失败

一旦打开一个文件并且您拥有一个文件对象,您就可以获得与该文件相关的各种信息。

例子

# 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)
fo.close()

它将产生以下输出-

Name of the file: foo.txt
Closed or not: False
Opening mode: wb