2013-02-16 3 views
2

먼저 파이썬에서 초보자입니다. 현재 ArcGIS 환경에서 Python을 다루는 클래스를 사용합니다. 현재 프로젝트는 파일을 만들고 다른 파일을 복사하는 간단한 프로그램입니다. 그러나 과제의 일부가 인쇄 문은 공교롭게도 최종 인쇄 문이 보일 것입니다 예를 들어, 무슨 일이 일어나고 있는지 명시하는 것입니다 같은 :파이썬 내 for 루프 건너 뛰기

처리 다각형 FeatureClasses ....

처리 FeatureClass >> 건물

필드 정보 :

,643 : 여기
etc. 

그렇게해야 내 코드의 작은 비트입니다

"Processing Point FeatureClasses"라는 첫 번째 print 문을 인쇄하지만 나머지는 수행하지 않고 코드의 다음 부분으로 건너 뛰고 실행한다는 문제가 발생합니다. 왜 그런가? 내 서식이나 말씨가 꺼져 있거나 이상하게 들릴 경우 죄송합니다. 고맙습니다.

편집 내 교수뿐만 아니라 몇 가지 지침을 요청하고 그가 내 위의 코드 블록의 약간 편집 된 버전을 다시 썼다 이메일

. 이제 포인트 필드 인쇄 문을 제외한 모든 것을 인쇄 할 수 있습니다. 이제는 건너 뜁니다.

pointlist = arcpy.ListFeatureClasses("*", "Point") 
print "Processing Point FeatureClasses...\n" 
i = 1 
for pl in pointlist: 
    print "Processing FeatureClass: " + pl 
    featlayernamepoint = "Point" + str(i) 
    arcpy.MakeFeatureLayer_management(pl, featlayernamepoint) 
    arcpy.SelectLayerByLocation_management(featlayernamepoint, "intersect", featurelayerMG2) 
    pointcount = int(arcpy.GetCount_management(featlayernamepoint).getOutput(0)) 
    if pointcount >= 1: 
     arcpy.CopyFeatures_management(featlayernamepoint, OutputGDB) 
     pointfield = arcpy.ListFields(featlayernamepoint) 
     for pf in pointfield: 
      print "Field Name: " + pf.name 
    i += 1 
+2

은 분명히,'pointlist'이 비어 : 여기에 코드입니다. 그것을 인쇄하여 루프 앞의'print (pointlist)'를 확인하십시오. –

+0

'print pointlist'는 무엇을 산출합니까? 사물의 외모로 보면 그것은 비어 있습니다. – Volatility

+0

내 문제 중 하나는 pointlist가 비어 있다는 것입니다. 그것은 내 작업 공간 경로명을 정확히 지정하지 않는 쉬운 수정이었습니다. – user2079473

답변

0

당신은 ListFields에 지점을 통과하는 것을 잊었다()

pointfield = arcpy.ListFields(pl) 
for pf in pointfield: 
     print "Field Name:" + pf.name 
+0

그건 내 코드에서 내 교수가 나에게 지금 지적한 또 다른 문제였습니다. – user2079473