在Python中,同时读取两个文件可以通过以下几种方法实现:
1. 使用多个`open()`函数:
file1 = open("file1.txt", "r")file2 = open("file2.txt", "r")for line in file1:处理file1的内容passfor line in file2:处理file2的内容passfile1.close()file2.close()
2. 使用`with`语句同时打开多个文件:
with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2:for line in file1:处理file1的内容passfor line in file2:处理file2的内容pass
3. 使用列表存储文件名,循环打开文件:
filenames = ["file1.txt", "file2.txt"]files = []for filename in filenames:file = open(filename, "r")files.append(file)for file in files:对每个文件进行操作pass

4. 使用生成器和`zip`函数:
def gen_line(fname):with open(fname, "r", encoding="utf-8") as f:for line in f:yield line.strip()gens = [gen_line(fname) for fname in filenames]for a, b in zip(*gens):print("\t".join([a, b]))
5. 使用`itertools.zip_longest`确保迭代完所有文件内容:
from itertools import zip_longestdef gen_line(fname):with open(fname, "r", encoding="utf-8") as f:for line in f:yield line.strip()gens = [gen_line(fname) for fname in filenames]for a, b in zip_longest(*gens):print("\t".join([a, b]))
6. 使用`fileinput`模块:
import fileinputfor line in fileinput.input(["file1.txt", "file2.txt"], inplace=True):print(line, end='')
选择合适的方法根据你的具体需求,例如是否需要同时处理文件内容,是否关心文件关闭时机等。使用`with`语句是推荐的做法,因为它可以确保文件在使用完毕后自动关闭
