Python逐行执行

时间:2017-12-11 18:34:38

标签: python dwg fme

我无法使用搜索选项解决此问题,所以我的问题是: 我有一个脚本可以完成这项工作,但仅限于一个文件。只是为了解释这里发生了什么:

import sys
sys.path.append('C:\Program Files\FME\fmeobjects\python27')

import fmeobjects 
runner = fmeobjects.FMEWorkspaceRunner()
workspace = 'C:\FME\Project_1.fmw'

parameters = {}
parameters['SourceDataset_ACAD'] ='C:\AutoCAD\Project_1.dwg'
parameters['DestDataset_OGCKML'] ='C:\Maps_KMZ\Project_1.kmz'  
runner.runWithParameters(workspace, parameters)

try:
    # Run Workspace with parameters set in above directory
    runner.runWithParameters(workspace, parameters)
    # or use promptRun to prompt for published parameters
    #runner.promptRun(workspace)
except fmeobjects.FMEException as ex:
    # Print out FME Exception if workspace failed
    print ex.message
else:
    #Tell user the workspace ran
    print('The Workspace is ran successfully'.format(workspace))

runner = None

此脚本执行FMW文件,该文件从AutoCAD DWG(C:\ AutoCAD)转换为KMZ文件并将其存储在C:\ Maps_KMZ文件夹中。现在,我需要为同一源文件夹中的大约20个FME文件做同样的事情。 是否有可能在当时执行每个文件并在两次执行之间添加特定的时间框架,让它们之间有2分钟的暂停,因为我无法同时运行2次或更多次转换,这会使Windows崩溃。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我建议您修改脚本以使用命令行参数。您可以直接使用sys.argv获取非常简单的界面,也可以使用parseargs模块获取更复杂的选项。

您可以编写接口以接受单个文件名或目录名。要遍历目录的文件,请查看os.walk()