欢迎访问宙启技术站
智能推送

文件处理函数详解及示例演示

发布时间:2023-06-19 00:42:55

文件处理是计算机编程中一项十分重要的任务。在日常编程中,我们需要通过读取和写入文件来处理和存储数据。在Python中,文件处理每个人接触过Python都很熟悉的一部分。本文旨在深入介绍Python中文件处理的函数及示例演示,帮助初学者进一步了解文件处理的基础知识。

在Python中,文件处理的基础函数有三个:open(打开文件)、read(读取文件)和write(写入文件)。下面我们将详细介绍这三个函数。

一、打开文件(open)

在Python中打开文件的函数是open,它的基础语法如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

其中,file表示文件路径,mode表示文件打开模式,buffering表示文件缓冲方式,encoding表示文件编码方式,errors表示文件编码出现错误时的处理方式,newline表示写入文件时的换行符类型。

mode参数是必须要指定的参数,其默认值为“r”,即以只读方式打开文件。常用的mode参数有:

模式

描述

r

以只读方式打开文件,文件指针在文件开头。

w

以只写方式打开文件,若该文件存在,则清空文件,从开头写入新内容,若不存在,则创建新文件。

a

以追加方式打开文件,若该文件存在,则直接在文件内容末尾处写入新内容,若不存在,则创建新文件。

r+

以读写方式打开文件,文件指针在文件开头。

w+

以读写方式打开文件,若该文件存在,则清空文件,从开头写入新内容,若不存在,则创建新文件。

a+

以读追加方式打开文件,若该文件存在,则直接在文件内容末尾处写入新内容,若不存在,则创建新文件。

二、读取文件(read)

在Python中读取文件的函数是read,它的基础语法如下:

read(size=-1)

其中,size表示每次读取的字节数。如果size为负数或不给定则读取整个文件。如果指定了size超过了文件大小,则只会读取文件中的内容并返回。

三、写入文件(write)

在Python中写入文件的函数是write,它的基础语法如下:

write(str)

其中,str表示要写入的字符串。

下面我们将用几个简单的示例演示这三个函数的具体用法。

示例1:读取小文件

我们来看一个读取小文件的示例,假设我们有一个文本文件,里面存储着若干个数字,我们需要读取其中的数据并计算它们的和。

首先,我们需要打开文件,代码如下:

f = open('numbers.txt')

这里我们只传递了文件名,因为我们想以只读方式打开文件,这是mode参数的默认值。接着,我们可以使用read函数读取文件中的内容,代码如下:

nums_str = f.read()

这里我们读取了整个文件的内容,并将其存储为一个字符串。接着,我们可以使用split函数将字符串分割为多个数字,代码如下:

nums_list = nums_str.split()

这里我们使用了split函数默认的分隔符(空格、制表符、换行符)将字符串分割为多个字符串,并存储为一个列表。接下来,我们将字符串列表转换为数字列表,代码如下:

nums = [int(x) for x in nums_list]

这里我们使用了列表推导式将字符串列表转换为数字列表。最后,我们使用sum函数计算数字列表的和,代码如下:

total = sum(nums)

代码整合如下:

f = open('numbers.txt')

nums_str = f.read()

nums_list = nums_str.split()

nums = [int(x) for x in nums_list]

total = sum(nums)

示例2:写入小文件

我们再来看一个写入小文件的示例,假设我们有一个空的文本文件,我们需要向其中写入若干行数据。

首先,我们需要打开文件,并将其打开为写入模式,代码如下:

f = open('output.txt', 'w')

这里我们传递了文件名以及打开模式。接着,我们可以使用write函数向文件中写入若干行数据,代码如下:

f.write('This is the first line.

')

f.write('This is the second line.

')

这里我们分别向文件中写入了两行数据,每行数据的结尾都加了一个换行符(

)。最后,我们需要关闭文件,代码如下:

f.close()

示例3:读取大文件

对于大文件的读取,我们不能一次性读取整个文件。相反,我们需要按块读取文件内容,分块读取文件可以避免占用大量内存。

举个例子,假设我们有一个500MB的文本文件,我们需要读取其中的数据并计算它们的总和,但我们不能一次性将整个文件读取到内存中。我们可以使用read函数按块读取文件,代码如下:

f = open('big_file.txt')

total = 0

while True:

    chunk = f.read(1024)

    if not chunk:

        break

    nums_str = chunk.split()

    nums = [int(x) for x in nums_str]

    total += sum(nums)

f.close()

这里我们读取文件时每次读取1024字节的数据块,并将数据块分割为字符串列表,然后再将字符串列表转换为数字列表,最后计算数字列表的总和。由于分块读取文件时,每次只读取一小部分文件内容,因此可以大大减轻内存占用。同样,我们也需要关闭文件。

在Python中,还有一些其他的文件处理函数,例如:readline(按行读取文件)、writeline(按行写入文件)、seek(控制文件指针位置)、tell(返回文件指针当前位置)等。熟练掌握这些函数的使用方法,可以使文件处理更加高效。