在循环中读取csv会在不匹配的行处停止

时间:2019-03-13 16:33:53

标签: python csv arcgis arcpy

我正在尝试读取csv,然后遍历sde来查找匹配的功能,其字段,然后打印它们。 列表中有一个表,我无法跳过它并继续阅读csv。 我得到“ IOError:表1不存在”,而我只得到表之前的功能。

import arcpy
from arcpy import env
import sys
import os
import csv

with open('C:/Users/user/Desktop/features_to_look_for.csv', 'r') as t1:
    objectsinESRI = [r[0] for r in csv.reader(t1)]

env.workspace = "//conn/features@dev.sde"
fcs = arcpy.ListFeatureClasses('sometext.*')

for fcs in objectsinESRI:
    fieldList = arcpy.ListFields(fcs)
    for field in fieldList:
        print fcs + " " + ("{0}".format(field.name))

示例csv行(似乎无法发布Excel文件的屏幕截图)

feature 1
feature 2
feature 3
feature 4
table 1
feature 5
feature 6
feature 7
feature 8
feature 9

结果

feature 1
feature 2
feature 3
feature 4

所需结果

feature 1
feature 2
feature 3
feature 4
feature 5
feature 6
feature 7
feature 8
feature 9

1 个答案:

答案 0 :(得分:0)

因此,如上所述,我对arcpy毫无头绪,但这似乎是开始的方式。看the docs,您的objectsInEsri似乎与示例中的数据集等效。从那里我推断出以下代码,根据所打印的print(fc),您可能需要扩展其他代码。

所以尝试一下:

for object in objectsInEsri:
    for fc in fcs:
        print(fc)

或者也许是这样

for object in objectsInEsri:
    for fc in fcs:
        for field in arcpy.ListFields(fc)
            print(object + " " + ("{0}".format(field.name)))

那我可能完全错了,但是先写外在的东西,看看能给你什么,然后从那里继续建造:)