您的位置:

Python 3写文件操作:以文件为中心

在Python中,文件是最为广泛和常用的数据存储形式之一。文件可以存储文本、图像、音频等各种类型的数据,而Python提供了丰富的功能用于文件的读写、操纵和管理。在本文中,我们将介绍Python 3的文件操作,重点是以文件为中心的读写操作。

一、文件打开和关闭

在Python中,打开文件是指创建新的文件对象,并返回一个与该文件相关的文件描述符。文件描述符是文件在系统中的唯一标识符,用于对文件进行读写操作。

要打开文件,我们可以使用Python内置函数open(),该函数的基本语法如下:

file_object = open(file_name [, access_mode][, buffering])

其中,file_name为文件名,access_mode为文件打开模式,buffering为缓存类型。在默认情况下,文件打开模式为只读模式('r');缓存类型为缓存完全(0)。

对于access_mode参数,下面是一些常用的取值和对应的含义:

  • 'r':只读模式,如果文件不存在则抛出异常。
  • 'w':只写模式,如果文件不存在则创建一个新文件,如果文件存在则删除其原有内容。
  • 'a':追加模式,如果文件不存在则创建一个新文件,在文件末尾添加新的内容;如果文件存在,则在文件末尾添加新的内容。
  • '+':打开文件进行读写操作。

当我们完成对文件的操作后,需要关闭文件,以便将系统资源归还给操作系统。Python的close()方法用于关闭文件,其基本语法如下所示:

file_object.close()

我们需要注意的是,如果在读写文件时出现错误,Python会自动关闭文件,但编程人员也可以通过close()方法手动关闭文件,以免出现意外。

二、文件读写操作

Python提供了基本的读写文件操作,包括读取文件内容、写入文件内容等常用操作。下面我们分别介绍这些操作。

1. 读取文件内容

读取文件内容是我们最为常见的操作之一。在Python中,我们可以使用read()方法来读取整个文件内容,代码示例如下:

with open('example.txt','r') as f:
    content = f.read()
    print(content)

在这个代码中,我们打开名为“example.txt”的文件,并将其存储在变量f中。使用read()方法,我们可以读取整个文件的内容,然后将其打印输出。

如果希望只读取文件的一部分内容,我们可以使用readline()方法和readlines()方法。其中readline()用于读取文件的一行内容,readlines()则是读取整个文件,并返回一个字符串列表。代码示例如下:

with open('example.txt','r') as f:
    line = f.readline()
    print(line)

    lines = f.readlines()
    print(lines)

在这个代码中,我们首先使用readline()方法读取文件的第一行内容,然后使用readlines()方法读取整个文件的内容,并且将其存储在一个字符串列表中。最后,我们打印输出这些内容。

2. 写入文件内容

除了读取文件内容,我们还可以写入文件内容。在Python中,我们可以使用write()方法来写入文件。代码示例如下:

with open('example.txt','w') as f:
    f.write('Hello World!')

在这个代码中,我们首先打开一个文件,并将其存储在变量f中。然后,我们使用write()方法向该文件中写入字符串“Hello World!”。

我们也可以使用writelines()方法向文件中写入多行内容。与readlines()方法类似,writelines()方法接收一个字符串列表作为输入,每个列表元素表示要写入的一行内容。代码示例如下:

with open('example.txt','w') as f:
    lines = ['Hello','World']
    f.writelines(lines)

在这个代码中,我们创建一个字符串列表lines,该列表的元素为要写入文件中的内容。我们使用writelines()方法,将整个列表写入文件中。

三、文件的操纵和管理

在Python中,我们可以使用os模块和shutil模块来实现对文件的操纵和管理。os模块提供了管理文件和目录的方法,如创建目录、删除文件等。shutil模块则提供了复制文件、移动文件等高级操作。

1. 文件管理

在Python中,我们可以使用os模块来管理文件,os模块中常用的方法有:

  • os.access():检查指定的路径是否具有特定的访问权限。
  • os.chmod():修改指定路径的访问权限。
  • os.chown():修改指定路径的所有者和组。
  • os.getcwd():获取当前工作目录。
  • os.listdir():返回指定目录下的所有文件和子目录,包括隐藏文件和目录。
  • os.mkdir():创建指定的目录。
  • os.makedirs():递归创建指定的目录,即可以创建多级目录。
  • os.remove():删除指定的文件。

这里我们以创建目录为例,介绍如何使用os模块管理文件。代码示例如下:

import os
 
# 定义要创建的目录
directory = "test"
 
# 创建目录
try:
    os.mkdir(directory)
    print("目录创建成功")
except:
    print("目录已存在")

在这个代码中,我们首先导入os模块,然后定义要创建的目录名称,并执行os.mkdir()方法来创建该目录。

2. 文件操纵

在Python中,我们可以使用shutil模块来实现文件操纵,包括复制文件、移动文件等操作。代码示例如下:

import shutil

# 复制文件
shutil.copy('example.txt', 'example_copy.txt')

# 移动文件
shutil.move('example.txt', 'test/')

在这个代码中,我们使用shutil模块中的copy()方法和move()方法,分别实现文件复制和文件移动的操作。

总结

通过本文的介绍,我们了解了Python 3的文件操作,重点是以文件为中心的读写操作。我们学习了如何打开和关闭文件、读取文件内容、写入文件内容、以及操纵和管理文件。掌握这些知识,可以使我们更加高效地使用Python进行数据存储和管理。