首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行FME工作台的Python脚本

运行FME工作台的Python脚本
EN

Stack Overflow用户
提问于 2019-01-11 14:00:09
回答 3查看 854关注 0票数 1

我有500多个xml文件,每个xml文件应该在FME工作台上单独处理(每个xml文件的FME工作台的迭代)。对于这样的建议,我必须运行一个python (loop.py)来迭代每个xml文件的FME工作台。

整个过程过去都是在其他PC上工作,没有任何问题。现在,运行模块后,我得到了以下错误:

回溯(最近一次调用):E:\XML_Data文件"E:\XML_Data\process\01_XML_Tile_1.py",第28行,如果“翻译成功”,在open(path_log + "\“+ data + ".log").read():IOError: Errno 2--没有这样的文件或目录:

附加了python代码(loop.py)。

任何帮助都是非常感谢的。

代码语言:javascript
复制
import os
import time
# Mainpath and Working Folder:
#path_main = r"E:\XML_Data"
path_main = r"E:\XML_Data"
teil = str("01")

# variables
path_in = path_main + r"\data_in\03_Places\teil_" + teil                # "Source folder of  XML files"
path_in_tile10 = path_main + r"\data_in\01_Tiling\10x10.shp"            # "Source folder of Grid shapefile"
path_in_commu = path_main + r"\data_in\02_Communities\Communities.shp"  # "Source folder of Communities shapefile"
path_out = path_main + r"\data_out\teil_" + teil                        # "Output folder of shapefiles that resulted from XML files (tile_01 folder)"
path_log = path_main + r"\data_out\log_" + teil                         # "Output folder of log files for each run(log_01 folder)"
path_fme = r"%FME_EXE_2015%"                                            # "C:\Program Files\FME2015\fme.exe"
path_fme_workbench = path_main + r"\process\PY_FME2015.fmw"             # "path of FME workbench"
datalists = os.listdir(path_in)
count = 0

# loop each file individually in FME
for data in datalists:
    if data.find(".xml") != -1:
        count +=1
        print ("Run-No." + str(count) + ": with data " + data)
        os.system (path_fme + " " + path_fme_workbench + " " + "--SourceDataset_XML"+ " " + path_in + "\\" + data + " " + "--SourceDataset_SHAPE" + " " + path_in_tile10 + " " + "--SourceDataset_SHAPE_COMU" + " " + path_in_commu + " " + "--DestDataset_SHAPE" +" " +path_out + " " +"LOG_FILENAME" + " " + path_log + "\\" + data + ".log" )
        print ("Data processed: " + data)
        shape = str(data[19:28]) + "_POPINT_CENTR_UTM32N.shp"
        print ("ResultsFileName: " + shape)
        if "Translation was SUCCESSFUL" in open(path_log + "\\" + data + ".log").read():
            # Translation was successful and SHP file exists:
            if os.path.isfile(path_out + "\\" + shape):
                write_log = open(path_out + "\\" + "result_xml.log", "a")
                write_log.write(time.asctime(time.localtime()) + " " + shape + "\n")
                write_log.close()
                print("Everything ok")
            #Translation was successful, but SHP file does not exist:
            else:
                write_log = open(path_out + "\\" + "error_xml.log", "a")
                write_log.write(time.asctime(time.localtime()) + " Data: " + shape + " unavailable.\n")
                write_log.close()      
        # Translation was not successful:
        else:
            write_log = open(path_out + "\\" + "error_xml.log", "a")
            write_log.write(time.asctime(time.localtime()) + " Translation " + Data + " not successful.\n")
            write_log.close()
        
print ("Number of calculated files: " + str(count))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-08 16:35:40

最有可能的是,脚本在os.system行失败,因此日志文件不是从命令中创建的。由于您提到了另一台计算机,它可能是由许多原因引起的,例如FME的不同版本(因此环境变量%FME_EXE_2015%将不存在)。

票数 0
EN

Stack Overflow用户

发布于 2020-10-09 00:56:52

使用工作区转轮转换器执行此操作。

票数 0
EN

Stack Overflow用户

发布于 2021-09-20 14:59:12

FME版本是outdated.so,首先检查该版本是否造成了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54147992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档