2017-12-11 1 views
0

내 질문에 : 검색 옵션을 사용하여이 질문에 대한 정밀한 솔루션을 수 없습니다. 하나의 파일에 대해서만 작업을 수행하는 스크립트가 있습니다. 그냥 여기에 무슨 what`s을 설명합니다 : C에서 KMZ 파일을 저장합니다에 (\ AutoCAD를 C) : \ Maps_KMZ 폴더Python 행마다 실행

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 

이 스크립트의 AutoCAD DWG에서 변환을 수행 FMW 파일을 실행합니다. 이제 동일한 소스 폴더에있는 약 20-ish FME 파일에 대해 동일한 작업을 수행해야합니다. 동시에 두 개 이상의 변환을 실행할 수 없기 때문에 각 파일을 한 번에 실행하고 두 번의 실행 사이에 특정 시간 프레임을 추가하여 두 분 사이의 일시 중지를 허용 할 수 있습니까? Windows 충돌이 발생합니다.

도움 주셔서 감사합니다.

+0

파일 경로를 목록에 넣고 처리를 함수에 넣고 목록을 반복하여 파일 경로를 함수에 전달한 다음 루프 맨 아래에 지연을 넣습니다. – wwii

+1

@wwii가 단어의 단계를 어떻게 설명하는지주의하십시오. 그의 제안은 주로 영어를 사용하거나 가장 편한 언어를 사용하여 좀 더 자세하게 설명해주십시오. 문제를 해결하는 데 필요한 단계에 대한 구두 설명이 있으면 Python으로 변환 할 수 있습니다. –

답변

0

명령 줄 인수를 사용하도록 스크립트를 수정하는 것이 좋습니다. 매우 간단한 인터페이스의 경우 직접 sys.argv을 사용하거나 더 복잡한 옵션의 경우 parseargs 모듈을 사용할 수 있습니다.

개별 파일 이름이나 디렉토리 이름을 허용하는 인터페이스를 작성할 수 있습니다. 디렉토리의 파일을 탐색하려면 os.walk()을보십시오.

+0

또는 간단한 인터페이스 * 및 * 복잡한 옵션에 대한'click' 라이브러리 : –

+0

@ juanpa.arrivillaga 나는 클릭에 익숙하지 않다. 제안 해 주셔서 감사합니다. –

+0

빠른 답변을 주셔서 감사합니다 ..... 문제는 파이썬 경험이별로 없다는 것입니다. – user7380301