我有一个奇怪的csv文件。它有子部分,每个子部分都有csv格式的数据。你知道吗
数据,例如:
Device Name: Test-0001
Sub section 1
header 1, header 2, header 3,header 4,.......header n
field 1, field 2, field 3, field 4, .......field n
Sub section 2
header 1, header 2, header 3,header 4,.......header n
field 1, field 2, field 3, field 4, .......field n
.....
Sub section n
header 1, header 2, header 3,header 4,.......header n
field 1, field 2, field 3, field 4, .......field n
Device Name: Test2-0002
and same format afterwards....
我想把每个“设备名称:”映射到所有子部分,直到下一个“设备名称:”出现
我该怎么做?你知道吗
我会尝试定义一个字典,把你的设备作为键,把行列表作为值。 假设
lines
是文件行的列表:其中
get_key
是您要定义的一个函数,它将把Device Name: Test2-0002
这样的行转换成您想要的东西。你知道吗例如,如果您想要像
Device Name: Test2-0002
这样的键,您可以将get_key
定义为get_key = lambda line: line
:这是一个函数,当给定line
时,它将返回完全相同的line
,而不进行任何处理。你知道吗如果您希望您的键类似于
Test2-0002
,您可以编写get_key
函数来删除Device Name:
字符串,或者在':'
之后获取该字符串的一部分。。。你知道吗这是一个相当基本的解决方案,但如果您不介意立即存储文件的行,它应该可以工作。如果这是一个问题,只需使用
file.readline()
而不是lines
列表。你知道吗稍微高级一点的解决方案可以基于
mmap
模块:找到Device Name
行的位置并存储它们。然后你可以一节一节地读。你知道吗相关问题 更多 >
编程相关推荐