连接文本文件中的多个列表
Concatenate many lists from text files
我在文本文件中有几千个列表。例如:
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
,然后调用一次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)
我在文本文件中有几千个列表。例如:
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
,然后调用一次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)