Python 如何使用SearchCursor工具从表中提取特定值

Python 如何使用SearchCursor工具从表中提取特定值,python,cursor,arcpy,Python,Cursor,Arcpy,我知道以前也有人问过类似的问题,但由于我对Python还很陌生,所以我无法将其他讨论和建议应用到我的案例中 我试图编写一个python脚本来从表中提取某些值:我所指的表是不同水深的硝酸盐值的一个大集合,这些值存储在表的列中。因为我只需要曲面和最深点的值,所以我希望搜索所有行并提取最后一个不是0的值。我已经开始使用SearchCursor工具编写脚本,但在这一点上遇到了问题,我希望它搜索第一个0值,然后返回并打印前一列的值。。。有人知道如何解决这个问题吗 import arcpy # Set t

我知道以前也有人问过类似的问题,但由于我对Python还很陌生,所以我无法将其他讨论和建议应用到我的案例中

我试图编写一个python脚本来从表中提取某些值:我所指的表是不同水深的硝酸盐值的一个大集合,这些值存储在表的列中。因为我只需要曲面和最深点的值,所以我希望搜索所有行并提取最后一个不是0的值。我已经开始使用SearchCursor工具编写脚本,但在这一点上遇到了问题,我希望它搜索第一个0值,然后返回并打印前一列的值。。。有人知道如何解决这个问题吗

import arcpy

# Set the Workspace
arcpy.env.workspace = "D:\Teresa\Kerstin\SouthernOcean\03_workspace\Teresa"

# Make table
table = "C:/Users/theidema/Desktop/OxzUti_GridP_Annual.csv"

# Create the search cursor
cursor = arcpy.SearchCursor(Table)

# Iterate through the rows
row = cursor.next()
while row:
    print (row.getValue(field))
    row = cursor.next()

乍一看,我发现了三个错误

首先,SearchCursor参数表是大写的,而变量表不是。它区分大小写,因此它们需要匹配

其次,您在print语句中使用了字段作为参数,但它没有定义。在While循环上方,定义变量-类似于:field=nameoffieldYouwantSearch

最后,也是在While循环中,您不想重新定义变量行。只需将其设为游标。下一步,删除行=。在循环之前,row=cursor.next将被计算为True或False,只要有下一行,while循环就一直运行,然后当没有下一行时,它将被计算为False,循环终止

哦,是的!我注意到你的工作区不是一个文件地理数据库。如果我是你,我会在GDB工作。特别是因为要素类不能存在于GDB之外。但是,如果使用shapefile,它可能会起作用

import arcpy

# Set the Workspace
arcpy.env.workspace = "D:\Teresa\Kerstin\SouthernOcean\03_workspace\Teresa" 
#If "Teresa" is a GDB, append ".gdb"

# Define variables
table = "C:/Users/theidema/Desktop/OxzUti_GridP_Annual.csv"
field = "" #Add the Field Name that you want to Search

# Call your CSV in SearchCursor
cursor = arcpy.SearchCursor(table)

# Iterate through the rows
row = cursor.next()
while row:
    print (row.getValue(field))
    cursor.next()

这将有助于提供您希望从每个字段中提取的内容的视觉效果。