如何在python中将50个文件的内容合并到同一个列表中
我想在同一目录中50个文件的函数中使用以下代码如何在python中将50个文件的内容合并到同一个列表中,python,list,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
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个文件的内容合并到同一个数组中。但这太长太复杂了,而且也不起作用。我知道有一种更简单的方法可以做到这一点,我只是不知道如何做到这一点。非常感谢您的帮助。您可以使用:
import fileinput
items = []
for line in fileinput.input(files):
items.extend(int(x) for x in line.split())
它还可以用作上下文管理器:
with fileinput.input(files=files) as f:
for line in f:
items.extend(int(x) for x in line.split())
您可以为此使用:
import fileinput
items = []
for line in fileinput.input(files):
items.extend(int(x) for x in line.split())
它还可以用作上下文管理器:
with fileinput.input(files=files) as f:
for line in f:
items.extend(int(x) for x in line.split())
也许我完全没有抓住要点,但你不需要同时打开所有文件,所以循环并逐个打开文件有什么不对
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()]
也许我完全没有抓住要点,但你不需要同时打开所有文件,所以循环并逐个打开文件有什么不对
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()]
其中一种情况是,
items.extend(int(x)for x in line.split())
可以替换为items.extend(map(int,line.split())
@Ashwini如何对50个文件执行此操作?@Sekou我假设您已经有了一个文件列表,只需将列表传递给fileinput.input
()。其中一种情况是items.extend(int(x)表示line.split()中的x)
可以替换为items.extend(map(int,line.split())
@Ashwini如何处理50个文件?@Sekou我假设您已经有一个文件列表,您只需要将列表传递到fileinput.input
()。好奇这些文件是什么?CSV、tab、txt、XML?因为根据格式有各种解决方案。@Parfait它们是txt文件好奇这些文件是什么?CSV、tab、txt、XML?因为根据格式有各种解决方案。@Parfait它们是txt文件这很有效,只是没有输出正确的答案。我只使用了四个文件进行了测试,结果是错误的我的答案与应该的答案稍有不同。你知道为什么吗?请通过编辑你的问题并添加一个例子来定义正确答案。我们不是你知道的读心术者;)这很有效,只是没有输出正确答案。我用四个文件对它进行了测试,它给出的答案与它应该给出的答案略有不同。你知道为什么吗?请通过编辑你的问题并添加一个例子来定义正确答案。我们不是读心术的人,你知道;)