我在库中有一堆.csv文件,我想提取它们的内容(它们是NxM矩阵)并将它们放入字典中。它们都是相同的大小,通常命名为{means1,means2,...}和{trajectories1,trajectories2,...}。
这是我用来获取文件列表的代码
import os
import glob
my_dir = 'insert your own datapath'
filelist = []
os.chdir( my_dir )
for files in glob.glob( "*.csv" ) :
filelist.append(files)
输出
['means0.csv',
'means1.csv',
'means2.csv',
'trajectories0.csv',
'trajectories1.csv',
'trajectories2.csv']
我正在寻找一些
的代码means_dict = {}
means_dict['0'] = ('means0.csv')
之类的东西。 希望它有意义!
答案 0 :(得分:2)
你真的,真的不想动态创建dicts。相反,使用带有键的包含字典作为"表示","轨迹"等,以及作为文件列表的值:
from collections import defaultdict
import re
filedict = defaultdict(list)
for filename in glob.glob( "*.csv" ) :
result = re.match(r'([^\d]+)', filename)
if result:
filedict[result.group(1)].append(filename)
答案 1 :(得分:1)
您可以使用这样的动态字典来完成:
{'test': ['test2.csv', 'test0.csv', 'test1.csv'], 'else': ['else0.csv', 'else1.csv']}
在我自己的测试中给出了这个结果:
SELECT ID, STUDENT, CLASS,
NVL(CASE WHEN CLASS LIKE '%-%' THEN CLASS END, LAG(CASE WHEN CLASS LIKE '%-%' THEN CLASS END) IGNORE NULLS OVER
(ORDER BY ID)) as CLASSSTUD
FROM MYTABLE
ORDER BY ID;