我正在使用以下代码将注释输出到csv:
new File(scriptParams.outputFile).withWriterAppend{ out ->
([Default:(doc.getAnnotations("MS").get("EDSS"))]).each{setName, set ->
set.each{ anno ->
anno.getFeatures().each{
def f = anno.getFeatures()
out.writeLine(/"${doc.getName()}",${anno.getId()},"${anno.getType()}",${anno.start()},${anno.end()},"${f.get('value')}","${f.get('valueLower')}","${f.get('valueUpper')}"/)
}
}
}
}
这很好用,但是对于每个发现的注释,我都会得到2行。即每个注释有1个重复项。我似乎无法在脚本中的任何地方看到为什么会发生这种情况。有指针吗?
答案 0 :(得分:1)
那又怎么样:
new File(scriptParams.outputFile).withWriterAppend{ out ->
doc.getAnnotations("MS").get("EDSS").each{
anno ->
def f = anno.getFeatures()
out.writeLine(/"${doc.getName()}",${anno.getId()},"${anno.getType()}",${anno.start()},${anno.end()},"${f.get('value')}","${f.get('valueLower')}","${f.get('valueUpper')}"/)
}
}
主要问题是anno.getFeatures().each{
,它会迭代注释所具有的所有功能,并针对每个功能将行打印到输出。您只需要为每个注释而不是每个注释功能打印行。