拿下 Python中的文件操作

1. 文件的基本概念

文件是计算机中的一个基本概念,是存储在外部介质(如硬盘、U盘等)中的数据集合。在Python中,文件可以用来读取数据和写入数据。

在Python中,有两种类型的文件:

文本文件:文件中的每个字符都有一个对应的ASCII码或Unicode码。

二进制文件:文件中的每个字节没有对应的字符,只有0和1的二进制编码。

1.1 文件的操作模式

在Python中,文件可以以不同的模式进行操作。常用的文件操作模式有:读取模式(r)、写入模式(w)和追加模式(a),另外还有读写模式(r+)和二进制模式(b)。

读取模式(r):以读取模式打开文件,只能读取文件内容,不能修改文件内容。如果文件不存在,会引发FileNotFoundError异常。

# 以读取模式打开文件

file = open("test.txt", "r")

# 读取文件内容

content = file.read()

print(content)

# 关闭文件

file.close()

写入模式(w):以写入模式打开文件,可以清空文件并写入文件内容。如果文件不存在,会创建一个新的文件。

# 以写入模式打开文件

file = open("test.txt", "w")

# 写入文件内容

file.write("Hello, World!")

# 关闭文件

file.close()

追加模式(a):以追加模式打开文件,可以在文件末尾写入数据。如果文件不存在,会创建一个新的文件。

# 以追加模式打开文件

file = open("test.txt", "a")

# 写入文件内容

file.write("\nHello, Python!")

# 关闭文件

file.close()

读写模式(r+):以读写模式打开文件,既可以读取文件内容,也可以修改文件内容。

# 以读写模式打开文件

file = open("test.txt", "r+")

# 读取文件内容

content = file.read()

print(content)

# 修改文件内容

file.write("\nHello, Python!")

# 关闭文件

file.close()

二进制模式(b):以二进制模式打开文件,适用于读写二进制文件,如图像文件、音频文件等。

# 以二进制模式打开文件

file = open("test.jpg", "rb")

# 读取二进制数据

data = file.read()

# 关闭文件

file.close()

1.2 文件对象的基本方法

在Python中,文件对象有以下几个基本方法:

read():读取文件中的数据。

# 以读取模式打开文件

file = open("test.txt", "r")

# 读取文件内容

content = file.read()

print(content)

# 关闭文件

file.close()

readline():读取文件中的一行数据。

# 以读取模式打开文件

file = open("test.txt", "r")

# 读取文件中的第一行数据

line1 = file.readline()

print(line1)

# 读取文件中的第二行数据

line2 = file.readline()

print(line2)

# 关闭文件

file.close()

readlines():读取文件中的所有行数据,返回一个列表。

# 以读取模式打开文件

file = open("test.txt", "r")

# 读取文件中的所有行数据

lines = file.readlines()

print(lines)

# 关闭文件

file.close()

write():向文件中写入数据。

# 以写入模式打开文件

file = open("test.txt", "w")

# 写入数据

file.write("Hello, World!")

# 关闭文件

file.close()

writelines():将字符串列表写入文件中。

# 以写入模式打开文件

file = open("test.txt", "w")

# 写入数据

lines = ["Hello, World!\n", "Hello, Python!\n"]

file.writelines(lines)

# 关闭文件

file.close()

2. 文件的上下文管理器

在Python中,可以使用with语句来自动创建文件,自动关闭文件,并且可以处理文件发生异常的情况。

2.1 with语句的基本语法

使用with语句创建文件,基本语法如下:

with open("test.txt", "r") as file:

content = file.read()

print(content)

以上代码中,文件会在with语句块执行完毕后自动关闭。

2.2 with语句的高级用法

在Python中,可以使用contextlib模块的contextmanager装饰器来实现自定义上下文管理器。

import contextlib

@contextlib.contextmanager

def file_open(file_name, file_mode):

try:

file = open(file_name, file_mode)

yield file

finally:

file.close()

with file_open("test.txt", "r") as file:

content = file.read()

print(content)

以上代码中,我们定义了一个自定义上下文管理器file_open(),该函数接受两个参数:file_name表示文件名,file_mode表示文件打开模式。函数体中使用try-except-finally语句打开文件,并使用yield语句将文件对象返回给with语句。with语句会在代码块执行完毕后自动关闭文件。

3. 文件的常见操作

3.1 文件的读取

在Python中,文件的读取操作主要有以下几种方式:

3.1.1 读取整个文件

我们可以使用文件对象的read()方法来读取整个文件。read()方法会将文件中的所有内容读取到一个字符串中,并返回该字符串。

with open("test.txt", "r") as file:

content = file.read()

print(content)

3.1.2 读取文件中的一行

我们可以使用文件对象的readline()方法来读取文件中的一行数据。readline()方法会每次读取一行数据,并返回该行数据的字符串。

with open("test.txt", "r") as file:

line = file.readline()

while line:

print(line)

line = file.readline()

3.1.3 读取文件中的多行

我们可以使用文件对象的readlines()方法来读取文件中的所有行数据,返回一个列表。列表中的每个元素都是文件中的一行数据的字符串。

with open("test.txt", "r") as file:

lines = file.readlines()

for line in lines:

print(line)

3.2 文件的写入

在Python中,文件的写入操作主要有以下几种方式:

3.2.1 写入字符串

我们可以使用文件对象的write()方法来写入字符串到文件中。write()方法会将字符串写入到文件中,返回写入的字符数。

with open("test.txt", "w") as file:

file.write("Hello, World!")

3.2.2 写入多行

我们可以使用文件对象的writelines()方法来将一个字符串列表写入文件中。writelines()方法会将列表中的每个字符串写入文件中。

lines = ["Hello, World!\n", "Hello, Python!\n"]

with open("test.txt", "w") as file:

file.writelines(lines)

3.3 文件的移动和重命名

在Python中,我们可以使用os模块的rename()方法来移动和重命名文件。

3.3.1 移动文件

我们可以使用os.rename()方法来移动文件。os.rename()方法接受两个参数:源文件名和目标文件名。

import os

os.rename("test.txt", "dir/test.txt")

以上代码将文件test.txt移动到dir目录下。

3.3.2 重命名文件

我们可以使用os.rename()方法来重命名文件。os.rename()方法接受两个参数:源文件名和目标文件名。

import os

os.rename("test.txt", "test2.txt")

以上代码将文件test.txt重命名为test2.txt。

3.4 文件的删除

在Python中,我们可以使用os模块的remove()方法来删除文件。

import os

os.remove("test.txt")

以上代码将删除文件test.txt。

4. 总结

本文介绍了Python中文件操作的基本概念、文件操作模式、文件对象的基本方法、文件的上下文管理器、文件的常见操作等知识点,这些知识点对于Python程序员来说都是非常重要的。在实际应用中,我们需要根据具体的需求采用不同的文件操作方式,以便更好地处理文件。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签