Python 文件处理
当我们使用任何计算机应用程序时,需要提供一些数据。数据存储在计算机的主内存(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确定文件的打开模式,例如读取、写入、追加等。下表中给出了可能的值的完整列表。这是一个可选参数,默认的文件访问模式是读取(r)。
-
buffering - 如果将buffering值设置为0,将不进行缓冲。如果将buffering值设置为1,在访问文件时执行行缓冲。如果将buffering值指定为大于1的整数,则使用指示的缓冲区大小执行缓冲操作。如果为负数,则缓冲区大小是系统默认值(默认行为)。
文件打开模式
以下是文件的打开模式:
序号 | 模式与描述 |
---|---|
1 | r 只读方式打开文件。文件指针定位在文件开头。这是默认模式。 |
2 | rb 以二进制只读方式打开文件。文件指针定位在文件开头。这是默认模式。 |
3 | r+ 以读写方式打开文件。文件指针定位在文件开头。 |
4 | rb+ 以二进制读写方式打开文件。文件指针定位在文件开头。 |
5 | w 以写入方式打开文件。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件来进行写入。 |
6 | b 以二进制模式打开文件 |
7 | t 以文本模式打开文件(默认) |
8 | + 以读写模式打开文件 |
9 | wb 以二进制格式只写入文件。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件进行写入。 |
10 | w+ 以读写模式打开文件。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件进行读写。 |
11 | wb+ 以二进制格式读写模式打开文件。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件进行读写。 |
12 | a 打开一个文件以进行追加操作。如果文件存在,文件指针将位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,它将创建一个新文件以进行写入操作。 |
13 | ab 以二进制格式打开一个文件以进行追加操作。如果文件存在,文件指针将位于文件末尾。也就是说,文件处于追加模式。如果文件不存在,它将创建一个新文件以进行写入操作。 |
14 | a+ 同时打开一个文件以进行追加和读取操作。如果文件存在,文件指针将位于文件末尾。文件以追加模式打开。如果文件不存在,它将创建一个新文件以进行读取和写入操作。 |
15 | ab+ 在二进制格式中以添加和读取的方式打开文件。如果文件存在,文件指针将位于文件末尾。文件以添加模式打开。如果文件不存在,它将创建一个新的文件来进行读取和写入。 |
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