在Python中,同时读取两个文件可以通过以下几种方法实现:
1. 使用多个`open()`函数:
file1 = open("file1.txt", "r")
file2 = open("file2.txt", "r")
for line in file1:
处理file1的内容
pass
for line in file2:
处理file2的内容
pass
file1.close()
file2.close()
2. 使用`with`语句同时打开多个文件:
with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2:
for line in file1:
处理file1的内容
pass
for 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_longest
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_longest(*gens):
print("\t".join([a, b]))
6. 使用`fileinput`模块:
import fileinput
for line in fileinput.input(["file1.txt", "file2.txt"], inplace=True):
print(line, end='')
选择合适的方法根据你的具体需求,例如是否需要同时处理文件内容,是否关心文件关闭时机等。使用`with`语句是推荐的做法,因为它可以确保文件在使用完毕后自动关闭
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/114309.html