如何在python中将open()几个文件放入同一个数组中

时间:2017-06-18 14:55:00

标签: python arrays

我创建了一个程序,它将一个文件中的整数添加到一个数组中然后对它们做了一些事情,但当我尝试将两个文件添加到同一个数组中时,我使用的代码并没有起作用。这是我用于一个工作正常的文件的代码:

with open(files) as f:
        prime_list1 = [int(i) for line in f for i in line.split()]

但是当我尝试添加第二个文件时,我做了什么工作。

with open(files) as f, open(files2) as b:
        prime_list1 = [int(i) for line in f for i in line.split() + int(i) for line in b for i in line.split()]

我知道你不是这样做的,我只是无法找出正确的方法。我也意识到已经存在类似的问题,但他们的答案在我的案例中并不起作用。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

几乎 - 您可以将其作为两个单独的列表推导来实现,

[int(i) for line in f for i in line.split()] + [int(i) for line in b for i in line.split()]
#                                          ^   ^

答案 1 :(得分:-1)

只需在列表中定义文件,遍历列表,打开,读取,转换为整数,最后将它们连接起来:

files = ["file1", "file2"] # etc.
result = []
for file_name in files:
    with open(file_name, "r") as f:
        result += [int(i) for line in f for i in line.split()]