我想创建一个循环,该循环从多个.txt文件读取数据并将其保存到不同的列表(根据这些不同的.txt文件(。
我不知道如何在循环中创建以下列表(或np.arrays(:time1,time2,..蒂姆,其中n是许多要分析的.txt文件。我用以下内容连接"常数"时间和"变量"数字:obj ['time' str(shot(],但没有保存为变量。
import numpy as np
import os
for shot in range(1,10):
#get the first txt:
txt_file = os.path.join(path,'shot'+str(shot)+'.txt')
#get data from txt:
data = np.genfromtxt(txt_file, skip_header = 4)
# now save it to the list (or np.array):
obj['time'+str(shot)] = np.array([row[0] for row in data])
作为输出,我想有10个列表或数组,以后有时间与它们一起工作。
您可以使用空列表或空词典来保存结果。
在第一种情况下,您应该首先创建一个空列表和下一个附加数据。因此,列表中的 i-th 元素将对应于(i 1(-th 源文件。
import numpy as np
import os
my_data = []
for shot in range(1,10):
#get the first txt:
txt_file = os.path.join(path,'shot'+str(shot)+'.txt')
#get data from txt:
data = np.genfromtxt(txt_file, skip_header = 4)
#append data
my_data.append(data)
first_source_data = my_data[0]
第二个选项,如果您想使用文件名获得访问权限。
import numpy as np
import os
my_data = {}
for shot in range(1,10):
#gen filename
filename = 'shot'+str(shot)+'.txt'
#get the first txt:
txt_file = os.path.join(path, filename)
#get data from txt:
data = np.genfromtxt(txt_file, skip_header = 4)
# now save it to the list (or np.array):
my_data[filename] = data
first_source_data = my_data['shot1.txt']
您的问题几乎没有令人困惑。但是,如果我正确理解。
您实际上不想使用列表,而是字典。词典是您使用关键字访问保存数据(过度简化(
的列表如果确实需要将obj = dict()
放在之前。或obj = []
如果要使用列表
和正确的最后一行是
obj['time'+str(shot)] = data[0]
或列表
obj[shot] = data[0]