Python:使用循环,阅读并将数据保存到不同的列表中



我想创建一个循环,该循环从多个.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]

最新更新