表至表 (转换)
摘要
将输入表转换为 dBASE 表或地理数据库表。
用法
-
此工具支持以下表格式作为输入:
- dBASE (.dbf)
- 逗号分隔值 (.csv)
- 由制表符分隔的文本 (.txt)
- Microsoft Excel 工作表(.xls 或 .xlsx)
- INFO
- VPF
- OLE 数据库
- 个人、文件或 SDE 地理数据库
- 内存中的表视图
对于文件输入(.csv 或 .txt),输入文件的第一行将用作输出表上的字段名称。字段名称不能包含空格或特殊字符(如 $ 或 *),如果输入文件的第一行包含空格或特殊字符,您将收到一条错误消息。
-
此工具可将输入表转换为 dBASE (.dbf) 表、地理数据库(个人、文件或 SDE)表或 INFO 表。
可使用该工具将 ArcGIS 表导出为 dBASE 表 (.dbf),dBASE 表可以通过 Microsoft Excel 读取和编辑。
字段映射参数控制输入要素中的输入字段写入输出要素的方式。
- 要在转换过程中删除字段,请从字段映射中将输入字段删除。该操作不会影响输入要素类。
- 如果创建了新字段,并且输出字段的内容是根据多个(名称不同的)字段生成的,则单个输出字段可根据多个输入字段生成。
- 输出字段的数据类型将默认为与其所遇到的第一个名称相同的输入字段的数据类型相同。可以随时手动将该数据类型更改为任意有效的数据类型。如果使用工具的对话框,则将列出所有有效的数据类型。
- 如果使用合并规则,则可自行指定分隔符,例如,空格、逗号、句点和短划线等。如果想要使用空格,请确保鼠标指针位于输入框的起始位置处,然后单击空格键。
- 可用的“合并规则”有很多:第一个、最后一个、连接、总和、平均值、中值、最小值、最大值和标准差。
- 格式选项仅适用于文本型输入字段(且与“连接”合并规则结合使用)。可以指定起点和终点等。使用格式,可以将更改应用到所选的输入字段或者所有相同的输入字段。
- 不应对单个输入执行标准差计算,因为数字不能被零除,因此标准差不适用于单个输入。
将包含子类型或域的地理数据库数据转换为 dBASE 表时,子类型和域代码以及描述都将包含在输出中。使用传输字段域描述地理处理环境控制此行为。默认情况下,只有域和子类型代码才会被包含在输出中,描述不会被包含在输出中。
注:转换为包含子类型和域描述的 dBASE (.dbf) 表比转换为不包含描述的表可能需要更多时间(降低性能)。如果在 dBASE (.dbf) 表输出中不需要子类型和域描述,则建议取消选中传输字段域描述环境的(脚本中的 False 或 NOT_TRANSFER_DOMAINS)默认行为以实现最佳性能。
语法
参数 | 说明 | 数据类型 |
in_rows |
要转换为新表的输入表。 | Table View; Raster Layer |
out_path |
写入输出表的目标位置。 | Workspace |
out_name |
输出表的名称。 如果“输出位置”为文件夹,则可通过指定一个扩展名为 .dbf 的名称,将“输入行”转换为 dBASE 表,也可以通过指定一个不带扩展名的名称,将“输入行”转换为 INFO 表。如果“输出位置”为地理数据库,则可通过指定一个不带扩展名的名称,将“输入行”转换为地理数据库表。 | String |
where_clause (可选) |
用于选择记录子集的 SQL 表达式。表达式的语法会因数据源的不同而稍有不同。例如,如果要查询文件或 ArcSDE 地理数据库、shapefile、coverage、dBASE 或 INFO 表,需将字段名用双引号括起: "MY_FIELD" 如果要查询个人地理数据库,需将字段用方括号括起: [MY_FIELD] 在 Python 中,字符串用成对的单引号或双引号括起。要创建含有引号的字符串(常见于 SQL 表达式中的 WHERE 子句),可以对引号进行转义(使用反斜线)或对字符串使用三重引号。例如,如果所需的 WHERE 子句为 "CITY_NAME" = 'Chicago' 可以将整个字符串用双引号括起,然后如下所示对内部双引号进行转义: " \"CITY_NAME\" = 'Chicago' " 或者可以将整个字符串用单引号括起,然后如下所示对内部单引号进行转义: ' "CITY_NAME" = \'Chicago\' ' 或者不进行转义,而将整个字符串用三重引号括起: """ "CITY_NAME" = 'Chicago' """ 有关 SQL 语法及其在不同数据源中的差异的详细信息,请参阅帮助主题在 ArcGIS 中使用查询表达式的 SQL 参考。 | SQL Expression |
field_mapping (可选) |
从输入表中选择的字段和字段内容。您可添加、重命名或删除输出字段,还可设置诸如数据类型和合并规则等属性。 | Field Mappings |
config_keyword (可选) |
指定关系数据库管理系统 (RDBMS) 中的地理数据库的默认存储参数(配置)。此设置仅在使用 SDE 地理数据库表时可用。 ArcSDE 配置关键字由数据库管理员进行设置。 | String |
代码实例
以下 Python 窗口脚本演示了如何在即时模式下使用表至表 (TableToTable) 工具。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.TableToTable_conversion("vegtable.dbf", "C:/output/output.gdb", "vegtable")
以下独立脚本演示了如何使用表至表 (TableToTable) 工具。
# Name: TableToTable_Example2.py
# Description: Use TableToTable with an expression to create a subset
# of the original table.
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inTable = "vegtable.dbf"
outLocation = "C:/output/output.gdb"
outTable = "estuarine"
# Set the expression, with help from the AddFieldDelimiters function to select the appropriate field delimiters for the data type
expression = arcpy.AddFieldDelimiters(env.workspace, "VEG_TYPE") + " = 'Estuarine'"
# Execute TableToTable
arcpy.TableToTable_conversion(inTable, outLocation, outTable, expression)