Python 2.7 使用csv和函数构造循环

Python 2.7 使用csv和函数构造循环,python-2.7,loops,csv,Python 2.7,Loops,Csv,我遇到了一个循环中的循环问题。 我希望对于每个featureclass(FC),脚本都应该循环“检查表”,并在匹配的地方运行函数findfield。 目前,该脚本似乎适用于第一个featureclass,通过检查表进行迭代,但它只是列出了剩余的featureclass,而没有检查检查表。有什么想法吗?建议 先谢谢你 # Import system modules import arcpy import os import traceback from arcpy import env impor

我遇到了一个循环中的循环问题。 我希望对于每个featureclass(FC),脚本都应该循环“检查表”,并在匹配的地方运行函数findfield。 目前,该脚本似乎适用于第一个featureclass,通过检查表进行迭代,但它只是列出了剩余的featureclass,而没有检查检查表。有什么想法吗?建议

先谢谢你

# Import system modules
import arcpy
import os
import traceback
from arcpy import env
import csv
import sys

#Workspace
arcpy.env.workspace = "SchemaOnly.gdb"

usecsv = open(r'C:\Temp\GV\Final working\Domain and length out.csv','r') #open file
checklist = csv.reader(usecsv) #init csv reader

# function to change schema of featureclass
def FindField(fc,myField):
    fieldList = arcpy.ListFields(fc)

    for field in fieldList:
        if str.lower(str(field.name)) == str.lower(myField):
            arcpy.AlterField_management(fc, myField, "", "", "text", new_length, "", "")
            print "    " + fc + " contains fieldname: " + myField



#Search Feature Datasets
for fds in arcpy.ListDatasets('','feature'):
    print "Searching FeatureDataset: " + fds

    for fc in arcpy.ListFeatureClasses('','',fds):
        print "  Searching Featureclass... " + fc
        for row in checklist:
            #print row[0] #prints fieldname
            #print row[1] #prints newlength
            myField = row[0]
            new_length=row[1]
            FindField(fc,myField)

好的,所以我设法找到了自己的解决方案。问题似乎是当我想迭代检查清单时,它在嵌套循环中工作了一次,但没有再次工作。 解决方案是将清单附加到一个新列表(fieldInfo)中,然后遍历该列表。代码更改如下

checklist = csv.reader(usecsv) #init csv reader
fieldInfo = []
for row in checklist:
    fieldInfo.append([row[0],row[1]])

好的,所以我设法找到了自己的解决方案。问题似乎是当我想迭代检查清单时,它在嵌套循环中工作了一次,但没有再次工作。 解决方案是将清单附加到一个新列表(fieldInfo)中,然后遍历该列表。代码更改如下

checklist = csv.reader(usecsv) #init csv reader
fieldInfo = []
for row in checklist:
    fieldInfo.append([row[0],row[1]])