如何将50个文件的内容组合到python中的同一个列表中

时间:2017-06-18 19:24:15

标签: python list

我想在同一目录中的50个文件的函数内使用以下代码。

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

我试过

with open(file1) as a, open(file2) as b, ... open(file50) as c:
    list1 = [int(i) for line in a for i in line.split()]
    list2 = [int(i) for line in b for i in line.split()]
    ...
    list50 = [int(i) for line in c for i in line.split()]
    my_list = list1 + list2 + ... list50

因此将50个文件的内容组合到同一个数组中。但这太长而复杂,也无法奏效。我知道有一种更简单的方法可以做到这一点,我只是不知道该怎么做。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您可以使用fileinput.input

import fileinput


items = []
for line in fileinput.input(files):
    items.extend(int(x) for x in line.split())

In Python 3.2+它也可以用作上下文管理器:

with fileinput.input(files=files) as f:
    for line in f:
        items.extend(int(x) for x in line.split())

答案 1 :(得分:1)

也许我完全忽略了这一点,但你不需要同时打开所有文件,那么循环错误并逐个打开文件会出现什么问题?< / p>

my_list = []

for filename in [file1,file2,file3]:
    with open(filename) as f:
        my_list += [int(i) for line in f for i in line.split()]