Python:遍历打开的文件

2024-03-29 00:30:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如果有人能给我指出正确的方向,我会非常感激的。我希望更换以下部件:

file1 = open ('filepath')
file1.write(data1)
file2 = open ('filepath2')
file2.write(data2)
file3 = open ('filepath3')
file3.write(data3)

像这样的东西可以迭代:

file[i] = open ('filepath')
file[i].write(data[i])

它们都需要不同名称的原因是,所有文件必须同时打开而不关闭。这只是制度的要求。你知道吗

有什么办法可以做到这一点吗?你知道吗


Tags: 部件open方向file1file2filewrite我会
3条回答

你可以用字典。你知道吗

files = {'filepath1': open('filepath1'), 'filepath2': open('filepath2')}

如果要以迭代方式生成字典,可以执行以下操作:

path = 'filepath{0}'
for i in range(10):
    filepath = path.format(i)
    files[filepath] = open(filepath)
open_files = [open(fname) for fname in ['filepath1', 'filepath2', 'filepath3']]

for fh in open_files:
    fh.write(...)

或者

for i, fh in enumerate(open_files):
    fh.write(data[i])

可以使用enumerate对文件路径进行迭代:

for f in enumerate("fil1","file2","file3"):
    with open(f,"w") as fle:
        fle.write(data[i])

或压缩文件名和数据:

for f,d in zip(("fil1","file2","file3",data)):
        with open(f,"w") as fle:
            fle.write(d)

如果要保持打开状态,请将文件对象存储在dict中:

d = {}
for f,d in zip(("fil1","file2","file3",data)):
        d[f] = open(f,"w")
        f[f].write(d)

相关问题 更多 >