我正在使用Modeler 18.0而且我是该工具的新手。
我继承了30个流文件。每个流以30个excel源节点开始,文件名如\ .xlsx(例如c:\ source \ regl_sales_01_WI_2017Q3.xlsx)。我需要为2017Q4版本的源文件更新所有900个节点。
我可以使用某种类型的脚本来查找和替换吗?这是一个独立的脚本吗?好像我可以使用类似node.setPropertyValue(“full_filename”,“c:\ source \ regl_sales_01_WI_2017Q3.xlsx”)的东西。如果我只能识别脚本和节点。
谢谢
答案 0 :(得分:0)
我认为您的问题可以通过独立脚本和stream.findAll()
功能来解决。
你可以这样做:
from os import listdir
from os.path import isfile, join
session = modeler.script.session()
tasks = session.getTaskRunner()
mypath = 'C:\\yourpath'
streams = [f for f in listdir(mypath) if (isfile(join(mypath, f)) and f.endswith(".str"))]
for streamFile in streams:
print(stream.getName()+" is getting processed.")
stream = tasks.openStreamFromFile(demosDir + streamFile, True)
inputNodes = stream.findAll("excelimport", None)
for in in inputNodes:
ff = in.getPropertyValue("full_filename")
ff.replace("2017Q3.xlsx", "2017Q4.xlsx")
in.setPropertyValue("full_filename", ff)
print(stream.getName()+" is processed.")
stream.close()
我没有对此进行测试,但它不需要进行大量调整才能正常工作。