Python 从两个文件中添加数字(逐行)

Python 从两个文件中添加数字(逐行),python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我有两个文件,都有大约10行随机数。我想将file1中的每一行与file2中的对应行一起添加。我可以做到这一点,每个文件中只有一个数字,但有多行数字挣扎。例如 这就是我所尝试的: file1 = open("file1.txt").read() file2 = open("file2.txt").read() result = int(file1) + int(file2) print(result) 您可以将readlines与open一起使用,以Python列表的形式获取这些行。然后,你

我有两个文件,都有大约10行随机数。我想将file1中的每一行与file2中的对应行一起添加。我可以做到这一点,每个文件中只有一个数字,但有多行数字挣扎。例如 这就是我所尝试的:

file1 = open("file1.txt").read()
file2 = open("file2.txt").read() 
result = int(file1) + int(file2)
print(result)

您可以将
readlines
open
一起使用,以Python列表的形式获取这些行。然后,你可以把它们一个接一个地加起来,然后用总和做一个新的列表

正如你所说,两个列表都有大约10行随机数,假设两个列表的长度相同

numbers1 = [int(a) for a in open('file1.txt').readlines()]
numbers2 = [int(a) for a in open('file2.txt').readlines()]

resul_ls = []
for i in range(len(numbers1)):
   result_ls.append(numbers1[i] + numbers2[i])

第一步是正确地从文件(程序失败的地方)中获取数字,然后将它们添加到新列表中。为了使程序更健壮,我们将捕获一个微不足道的边缘情况(当两个列表的参数数不相同时),作为奖励,您不必硬编码每个文件中的行数:

from itertools import zip_longest

try:
    with open("file1") as file1, open("file2") as file2:
        numbers1 = [int(line) for line in file1.readlines()]
        numbers2 = [int(line) for line in file2.readlines()]
        result = [line[0] + line[1] for line in zip_longest(numbers1, numbers2, fillvalue=0)]
except FileNotFoundError:
    print("Error opening files")

样本测试:

文件1:

7
1
5
9
7
9
10
3
10
8
文件2:

9
9
8
2
8
5
2
8
9
您必须注意,文件的行数不同,file1(10)、file2(9),我举了这个例子来说明您的情况下的不确定程度:

两者都有大约10行随机数


请注意,如果您有很长的文件,一次将它们全部读入内存可能不是一个好主意。在这种情况下,您可以同时使用
zip

with open("file1.txt") as file1, open("file2.txt") as file2:
    for line1, line2 in zip(file1, file2):
        print(int(line1) + int(line2))

尝试逐行阅读两个文本文档。您正在做的是读取整个文件。您可以通过多种方式实现这一点,比如创建一个数组来读取txt文件1中的每个数字,创建另一个数组来读取txt文件2。然后您可以将所有值相加并打印出来。这只是一种方法,肯定不是最有效的。10行随机数=10个随机intsI还被告知在读取文件后确保关闭该文件,这是一种更好的做法。谢谢你的帮助
with open("file1.txt") as file1, open("file2.txt") as file2:
    for line1, line2 in zip(file1, file2):
        print(int(line1) + int(line2))