我想在同一目录中的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个文件的内容组合到同一个数组中。但这太长而复杂,也无法奏效。我知道有一种更简单的方法可以做到这一点,我只是不知道该怎么做。非常感谢任何帮助。
答案 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()]