使用 readlines() 读取多个打开的文件会导致空数组

Reading multiple opened files using readlines() results in empty array

我有 2 个文件要操作。其中一个文件 (in.txt) 以读取模式打开,'r',另一个 (out.txt) 以追加模式打开,应该也可以读取,'a+'.

举个例子,假设 in.txt 文件的内容是:

Foo

out.txt文件的内容是:

Bar

如果我 运行 将此脚本放在文件存储的同一文件夹中,(请不要注意变量名,这只是为了简化示例...我希望):

with open('in.txt', 'r') as i, open('out.txt', 'a+') as o:
    in_data = i.readlines()
    out_data = o.readlines()
    
    print(in_data)
    print(out_data)

这是输出:

['Foo\n']
[]

output file的内容不会被读入数组

我应该如何继续才能按预期使用这两个文件?与打开操作的文件指针有关吗?

这与打开多个文件无关。

当您以追加模式打开文件时,您最初位于文件末尾,因此没有可读取的内容。内容需要查找到开头。

with open('in.txt', 'r') as i, open('out.txt', 'a+') as o:
    in_data = i.readlines()
    o.seek(0)
    out_data = o.readlines()
    
    print(in_data)
    print(out_data)