我这里有一个CSV文件,其中包含了一系列的属性和值,我们在工作的一些服务器。你知道吗
下面是一个简短的示例:
Asset_ID PropSVC PropSVN PropTSC PropTSN
------------------------------------------------------------
A0001 SVC001 N032 TSC538 TS_BLAH
A0002 SVC002 N384 TSC002 TS_BLAH
A0006 SVC1223 N456 TSC002 TN_foo
A0006 SVC1223 N456 TSC004 T_Bar
如您所见,有些服务器(按其资产ID索引)具有重复的条目,因此具有不同的属性。有些服务器可能不会在相邻的行中重复,而是分布在整个文件中,但我认为这不会造成问题。 我要做的是从这里提取数据,并使用Jython 2.7创建如下文件:
Asset_ID Property Value
----------------------------------
A0001 PropSVC SVC001
A0001 PropSVN N032
A0001 PropTSC TSC538
A0001 PropTSN TS_Blah
A0002 PropSVC SVC002
A0002 PropSVN N384
A0002 PropTSC TSC002
A0002 PropTSN TS_Blah
A0006 PropSVC SVC1223
A0006 PropSVN N456
A0006 PropTSC TSC002, TSC004
A0006 PropTSN TN_foo, T_Bar
它基本上是每个服务器的属性和它们的值的列表,如果有多个并且它们不相同的话。这样,文件变得更小,更容易作为我们将要使用的另一个软件的输入。你知道吗
有没有什么功能或方法可以相对快速地实现这一点?你知道吗
首先,假设您的CSV文件名为
data.csv
,以制表符分隔,并且包含:标识列:
0
。你知道吗1
。你知道吗2
。你知道吗3
。你知道吗4
。你知道吗记录如下:
我假设您的数据是以制表符分隔的,因此您可以使用以下命令对其进行解析:
在没有任何处理的情况下,数据在解析时会如下所示:
现在要按资产ID和属性聚合属性值:
聚合的
data
现在看起来像:现在让我们将这些数据保存到
output.csv
:这将创建制表符分隔的文件
output.csv
,其中包含:注意:如果您运行的是Jython2.5,则需要将
from __future__ import with_statement
添加到脚本顶部,或者将所有with open(...) as fh
替换为fh = open(...)
。你知道吗相关问题 更多 >
编程相关推荐