从文本文件连接多个列表



我在文本文件中有几千个列表。例如:

text1.txt:

1,2,3,4

text2.txt:

a,b,c,d

我想打开我所有的文本文件,并把它们放在一个列表中,像这样:

[1,2,3,4,a,b,c,d]
然而,我尝试过的所有循环要么给我一个数组列表,如:
[array([1,2,3,4]),array([a,b,c,d)]]

或者直接返回[1,2,3,4]

这是我最近尝试的代码:

file_list=glob.glob(file_dir+'/*.txt')
data=[]
for file_path in file_list:
    data.append(np.concatenate([np.genfromtxt(file_path, delimiter=',')]))

将第一个列表放入data。在不连接的情况下,它将两个列表作为两个独立数组的列表放入data中。

收集列表中的数组,data,然后调用np.concatenate一次将数组列表连接为单个数组:

data=[]
for file_path in glob.glob(file_dir+'/*.txt')
    data.append(np.genfromtxt(file_path, delimiter=','))
result = np.concatenate(data)

由于np.genfromtxt可以接受一个生成器作为它的第一个参数,您还可以避免形成许多小的、独立的数组创建一个生成器表达式,从所有文本中生成所有行文件:

import glob
import itertools as IT
lines = IT.chain.from_iterable(open(file_path, 'r') 
                               for file_path in glob.glob('*.txt'))
result = np.genfromtxt(lines, delimiter=',', dtype=None)

相关内容

  • 没有找到相关文章

最新更新