在 Python 窗口中执行工具
当第一次打开 Python 窗口时,它会显示类似这样的界面:
左侧区域为 Python 的主提示窗口,在这里执行 Python 命令。右侧区域为帮助和语法窗口,工具运行时,在这里显示执行消息;输入代码时,在这里显示有关当前工具、函数或类的帮助信息。
在 Python 窗口中访问工具和其他 ArcPy 功能的第一步是在提示符处输入 arcpy.,从而显示所有 arcpy 工具、函数和类的下拉列表。此列表可使用指针或键盘上的上/下方向键进行上下滚动。随着字符的不断输入,下拉列表会不断地进行过滤,以便仅匹配出最符合输入字符的工具或方法。例如,如果在 Python 窗口中输入 arcpy.addf,则下拉列表中只包含以那些字符开头的工具或方法。如果向下滚动到 arcpy.AddField_management 或单击它,TAB 键将在提示符处自动填写此工具的完整名称。当输入左半圆括号 ( 时,会在帮助和语法窗口中显示 arcpy.AddField_management 工具的帮助。默认情况下,会将第一个参数高亮显示。
在 Python 中,使用工具名称代替工具标签。工具标签显示在工具对话框的顶端或目录 窗口中。工具名称通常与工具标签类似,但它不含空格。在 Python 中,还包含工具箱别名和工具名称。
一旦输入所需的全部参数,请按 ENTER 键执行此工具。在 Python 窗口的帮助和语法区域会显示执行消息。消息会因不同的消息类型而呈现不同的文本颜色。默认文本颜色及其含义如下:
颜色 |
含义 |
---|---|
黑色 |
正常信息性消息。 |
红色 |
错误消息。未创建结果。 |
橙色 |
警告消息。结果可能不是预期结果。 |
您可在 Python 窗口的帮助和语法区域右键单击并选择格式来更改这些颜色。
必需参数与可选参数
工具的参数中,有些是必选的,有些是可选的。可选参数会放在大括号 { } 中;而必需参数不会。
参数类型 |
符号 |
含义 |
---|---|---|
是否必需 |
必需参数。这些参数始终是在命令中靠前的参数。您必须为必需参数赋值。 | |
可选 |
{ } |
可选参数。这些参数始终位于必需参数之后。如果不为可选参数输入值,则会为其计算并应用默认值。参数的默认值可在工具的帮助中查找。 |
工具可能会拥有多个可选参数。有时,只需关注工具的某些可选参数并对其进行设置。跳过或略过可选参数的方式有三种:
- 将可选参数设置为一组空双引号 ("")。
- 将可选参数设置为带双引号的井号 ("#")。
- 明确指定要使用的参数名称及其值(忽略除已命名参数以外的所有参数)。
在下列示例中,使用到了添加字段工具,但是使用了上述三种方式将第四个和第五个参数保留为它们的默认值:
# Use empty strings to skip optional parameters
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", "", "", 120)
# Use the # sign to skip optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", "#", "#", 120)
# Use the parameter name to bypass unused optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", field_length=120)
默认值
- 可选参数具有默认值。如果为可选参数输入带引号的 #(井号)、""(一对双引号)、''(一对单引号)或者 Python None,将会使用默认参数值。对于关键字,默认值为列表中的第一个关键字。请参阅有关单个工具默认参数值的帮助。
- 通常会跳过某些可选参数而只关注要更改的参数。
参数下拉列表
无论工具在何时为特定参数识别可用选项,Python 窗口中都会提供下拉列表。与在工具对话框中一样,参数会识别和过滤合适的值。例如,AddXY_management 工具只接受点要素类或图层作为输入要素,所以此参数的下拉列表将只包含可用的点要素图层;类似地,DeleteField_management 工具将基于输入表提供字段的下拉列表。
多值参数
工具参数可接受单个值或多个值,这取决于参数本身。当可接受多个值时,参数值可指定为一个 Python 列表。
删除字段工具可接受多个要删除的字段。要使用删除字段删除多个字段,请在 Python 列表中输入字符串形式的字段名称。
arcpy.DeleteField_management("c:/base/rivers.shp", ["Type", "Turbidity", "Depth"])
某些工具(例如 Union_analysis 和 Intersect_analysis 叠加工具)具有像表一样表示的参数;即,它们有多行,并且每一行都有多个值。就 Union_analysis 而言,输入要素参数支持使用优先级等级,优先级等级可用于以高精度保留要素。等级作为可选值指定给每个输入要素类,其中 1 为最高等级。
表示形式像表一样的参数被称为“值表”。“值表”作为列表的 Python 列表进行输入。对于 Union_analysis 中的“输入要素”参数,在要素类名称之后指定等级,并带有对值进行分隔的逗号。每个要素类等级对都包含在更高等级的列表中(列表的列表由此得名)。以下示例显示创建这种列表的方法。工作空间环境已进行设置,您无需为每个要素类的工作空间重复相同设置。
arcpy.env.workspace = "D:/St_Johns/data.mdb/neighborhoods"
input_list = [["east", 1], ["west", 1], ["south", 1], ["north", 2]]
arcpy.Union_analysis(input_list, "D:/base/data.gdb/land_use")
参数约定
一般来说:
- 所有输入数据集的参数名都带有前缀 in_,而所有输出数据集的参数名都带有前缀 out_。
- 输入数据集通常为第一个参数,输出数据集通常为最后一个必需参数。其他必需参数位于输入和输出数据集之间。
- 可选参数始终位于必需参数之后。
在 Python 窗口中获得帮助
一旦输入命令名称,就可以有多种方法来获得它的用法和特定工具帮助:
- 在提示区域输入工具名并在其后加上左半圆括号:arcpy.Buffer_analysis(。这样就会在帮助和语法窗口中显示此工具的用法和帮助信息。
- 使用 Python 的内置帮助功能并输入需要获得帮助的工具名称。帮助将会显示在 Python 主区域内。
- 在工具后面使用 Python 的内置功能属性 __doc__,就可以显示文档字符串。帮助将会显示在 Python 主区域内。
>>> arcpy.Buffer_analysis(
>>> help(arcpy.Buffer_analysis)
>>> print arcpy.Buffer_analysis.__doc__