2015-10-01 54 views
1

我把拼湊在一起的代碼循環遍歷一些特徵類,並通過fc輸出總數以及特徵類的總數。我無法正確理解的最後一部分是如何總結每個要素類的總數,所以我不需要將它們添加到我的腦海中。我已經閱讀了許多類似的帖子,但他們似乎都專注於返回一個要素類的總和,而不是多個要素類的總和。 (IM在Win 7,Oracle 10g中的Python 2.7.5,ArcGIS的10.2.1)到目前爲止 我的工作代碼.....如何總結多個特徵類中的值?

FCS = arcpy.ListFeatureClasses() 
    FCS.sort() 
    for fc in FCS: 
      if fc.startswith("Book"): 
        DM1 = arcpy.GetCount_management(fc) 
        print "\t" + fc +" Record Count = "+ str(DM1) 
        # total = sum(str(DM1)) #### my effort to return sum 
        # print "Book_** Record Count = " +total 
    # and the number of feature classes (In case there were hundreds) 
    fcCount = len(FCS) 
    print '\n' '\t' "FeatureClasses found = " + str(fcCount) 

產生以下結果....

15_Books_Base_count.py starts here...... 

Book_10 Record Count = 841 
Book_20 Record Count = 209 
Book_30 Record Count = 56 
Book_40 Record Count = 32182 
Book_50 Record Count = 40178 
Book_60 Record Count = 8562 
Book_70 Record Count = 2118 
Book_80 Record Count = 6413 
Book_90 Record Count = 645 

FeatureClasses found = 11 

我是在「Book _ ** Record Count = 91204」的返回行之後。

+0

這與Oracle10g有什麼關係?代碼中沒有涉及SQL或PL/SQL。 – Sentinel

+0

你看不到完整的腳本(700行)。 sql位不是概率。 – user1995458

+2

那麼爲什麼把它標記爲Oracle10g? – Sentinel

回答

1

創建一個名爲total的變量。每次通過循環時,按該要素類的計數DM1遞增total。然後在循環後打印str(total)。請看:

total = 0 
FCS = arcpy.ListFeatureClasses() 
FCS.sort() 
for fc in FCS: 
     if fc.startswith("Book"):      
       getCountResult = arcpy.GetCount_management(fc) 
       DM1 = int(getCountResult.getOutput(0)) 
       print "\t" + fc +" Record Count = "+ str(DM1) 
       total += DM1 
print "Book_** Record Count = " + str(total) 
# and the number of feature classes (In case there were hundreds) 
fcCount = len(FCS) 
print '\n' '\t' "FeatureClasses found = " + str(fcCount) 
+0

這看起來不錯,謝謝@加里 - s和我沒有考慮過的選項。我明天早上回去工作並提醒時,我會休息一下。 – user1995458

+0

你有機會嘗試它嗎? –

+0

不幸的是,僅僅因爲一些緊急的工作而現在。如果我運行代碼,我得到以下錯誤。 「不支持的操作數類型(s)+ =:'int'和'Result'」。我嘗試在各個地方添加'int',但仍收到不受支持的對角線錯誤。由於我的知識有限,我懷疑它與字段類型有關,因爲count是fc記錄,而不是字段值。我剛纔進一步搜索,但沒有遇到任何有關的知識。如果您在最後的樣本集上運行代碼,是否會得到不受支持的錯誤反饋? – user1995458