在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进行数据存储和管理。