如何在 Python 中同时打开两个文件?

pythonserver side programmingprogramming

Python 是一种流行的编程语言,广泛应用于数据分析、机器学习和科学计算领域。在处理项目时,同时处理多个文件是很常见的。在 Python 中,有多种方法可以同时打开两个或多个文件。

在本文中,我们将学习如何在 Python 中同时打开两个文件。使用户能够与计算机文件交互的基本 Python 功能是文件读写操作。Python 提供了以不同格式阅读、编写和控制记录的内置功能。<​​/p>

文件读取是打开文档并将其项目添加到内存中所涉及的方法。当我们想要处理或分析存储在文件中的数据时,这很有用。Python 提供了一些固有的功能来理解文档,包括 open()、read()、readline()、readlines(),从那里开始,天空才是极限。我们能够使用这些函数以多种模式读取文件,包括"r"(只读)、"w"(只写)、"a"(追加)和"x"(创建)。

不同的方法

以下是在 Python 中同时打开两个文件的一些常用方法:

方法 1:使用"with"语句

同时打开两个或多个文件的第一种方法是使用 Python 中的"with"语句,它提供了一种更简洁的打开文件的方法。此语句可确保程序使用完文件后自动关闭文件。以下是使用 with 语句打开两个文件的语法:

语法

with open('file1.txt', 'r') as file1, open('file2.txt', 'r') as file2:
    # 操作 file1 和 file2 的代码

在上述语法中,我们以读取模式打开两个文件"file1.txt"和"file2.txt"。'with' 语句确保在执行代码块后关闭文件。我们可以在代码块内操作这两个文件。

示例

以下示例演示如何使用 'with' 语句同时打开两个文件。在此示例中,'with' 语句用于以读取模式打开两个文件 myfile1.txt 和 myfile2.txt。我们使用 read() 策略读取每个记录中的项目,并将它们存储在因子 mydata1 和 mydata2 中。最后,我们将每条记录中的项目打印到控制中心。

# 使用 with 语句同时打开两个文件
with open('myfile1.txt', 'r') as myfile1, open('myfile2.txt', 'r') as myfile2:
    # 读取第一个文件的内容并将其存储在变量中
    mydata1 = myfile1.read()
    # 读取第二个文件的内容并将其存储在变量中
    mydata2 = myfile2.read()

# 将第一个文件的内容打印到控制台
print(mydata1)
# 将第二个文件的内容打印到控制台
print(mydata2)

输出

Welcome to Tutorialspoint- This is file 1.
Simply Easy Learning. This is file 2.

方法 2:使用循环遍历文件名列表

用于同时打开两个或多个文件的第二种方法是创建一个文件名列表,然后循环遍历该列表以打开每个文件。以下是此方法的语法:

语法

files = ['file1.txt', 'file2.txt']
file_objs = []
for file_name in files:
    file_objs.append(open(file_name, 'r'))

在上述语法中,我们使用了循环过程来同时打开两个或多个文件。

示例

下面的示例演示了如何使用循环同时打开两个文件。在此示例中,我们创建一个名为 file_names 的文件名列表,然后通过循环遍历列表以读取模式打开每个文件。每个文件对象都添加到列表 file_objs 中。然后使用 read() 方法读取每个文件的内容并将其存储在变量 mydata1 和 mydata2 中。最后,我们使用 close() 方法关闭每个文件并将内容打印到控制台。

# 创建要打开的文件名列表
file_names = ['myfile1.txt', 'myfile2.txt']
# 创建一个空列表来存储文件对象
file_objs = []

# 循环遍历文件名列表以打开每个文件并将文件对象附加到 file_objs 列表中
for file_name in file_names:
    file_obj = open(file_name, 'r')
    file_objs.append(file_obj)
# 读取第一个文件的内容并将其存储在变量中
mydata1 = file_objs[0].read()
# 读取第二个文件的内容并将其存储在变量中
mydata2 = file_objs[1].read()

# 将第一个文件的内容打印到控制台
print(mydata1)
# 将第二个文件的内容打印到控制台
print(mydata2)

# 关闭 file_objs 列表中的每个文件对象
for file_obj in file_objs:
    file_obj.close()

输出

Welcome to Tutorialspoint- This is file 1.
Simply Easy Learning. This is file 2.

方法 3:使用 Zip 函数

用于同时打开两个或多个文件的第三个也是最后一个方法是使用 Python 中的 Zip 函数,该函数允许我们将两个或多个列表组合成一个可迭代对象。我们可以使用 Zip 函数同时打开多个文件。以下是使用 Zip 函数打开两个文件的语法:

语法

myfile_names = ['myfile1.txt', ''myfile2.txt']
myfile_objs = [open(myfile_name, 'r') for myfile_name in myfile_names]

for myfile1, myfile2 in zip(myfile_objs[0], myfile_objs[1]):
    # 操作 myfile1 和 myfile2 的代码

在上述语法中,我们创建了一个文件名列表 ['myfile1.txt', 'myfile2.txt']。然后,我们使用列表推导式创建了一个文件对象列表 myfile_objs。我们循环遍历文件名列表,并使用 open() 函数以读取模式打开每个文件。我们将文件对象附加到 myfile_objs 列表中。

示例

以下示例演示如何使用 Zip 函数同时打开两个文件

使用列表推导,我们在此示例中创建一个名为 file_names 的文件名列表和一个名为 file_objs 的文件对象列表。然后使用 Zip 函数将文件对象合并为单个可迭代对象。

使用 for 循环遍历可迭代对象,在每次迭代中,变量 myfile1 和 myfile2 将分别保存第一个和第二个文件的内容。使用 readline() 方法,我们将每个文件中的一行数据存储在变量 mydata1 和 mydata2 中。最后,我们将每个变量中的项目打印到控制中心,并使用 vicinity() 方法关闭每个记录。

# 创建要打开的文件名列表
file_names = ['myfile1.txt', 'myfile2.txt']
# 使用列表推导创建文件对象列表
file_objs = [open(file_name, 'r') for file_name in file_names]

# 使用 zip 函数同时循环遍历两个文件的内容
for myfile1, myfile2 in zip(file_objs[0], file_objs[1]):
    # 从第一个文件读取一行数据并将其存储在变量中
    mydata1 = myfile1.readline()
    # 从第二个文件读取一行数据并将其存储在变量中
    mydata2 = myfile2.readline()

# 将第一个文件的内容打印到控制台
print(mydata1)
# 将第二个文件的内容打印到控制台
print(mydata2)
# 关闭 file_objs 列表中的每个文件对象
for file_obj in file_objs:
    file_obj.close()

输出

欢迎来到 Tutorialspoint - 这是文件 1。
简单易学。这是文件 2。

结论

在本文中,我们学习了如何在 Python 中同时打开两个文件。我们看到了三种方法,包括 WITH 语句、循环和使用 ZIP 函数同时打开文件。


相关文章