在ArcGIS中使用Python添加多个字段名
我在想有没有人能帮我解决我作业中的一个步骤...
到目前为止,这是我的Python程序——它能正常工作。
# Import system modules
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
# Load required toolboxes...
gp.AddToolbox("C:/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
# Script argum ents...
Input_Table = sys.argv[1]
gp.addmessage("sys.argv[1] is " + Input_Table)
Field_Name = sys.argv[2]
gp.addmessage("sys.argv[2] is " + Field_Name)
# Local variables...
Output_Feature_Class = ""
# Process: Add Field...
gp.AddField_management(Input_Table, Field_Name, "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
我的任务是把第二个参数(sys.argv[2])拆开,变成一个列表里的多个项目,然后把加法的代码放在一个循环里,以便把多个字段的值加起来。
显然,Python对我来说有点难。我相信这应该是个简单的任务。
非常感谢大家!
4 个回答
如果你想把 sys.argv[2] 这个字符串按照某个字符分开,使用这个格式:sys.argv[2].split(<你想分开的字符>)
。这里的“你想分开的字符”可以是像“/”这样的斜杠,或者是“,”这样的逗号。你可以在 Python 的交互模式下试试,输入一些字符串来测试 sys.argv[2]。要遍历这个分开的列表,可以用:for i in range(len(<列表名称>)):
,这样就能逐个访问分开的每一项。我不想把所有的都告诉你,所以就先到这里,希望你能自己搞定剩下的部分!祝你好运。
首先,你遇到的错误信息具体是什么?你是用什么输入来运行你的脚本的?我想看看你是怎么从命令行运行这个Python脚本的,比如:'python myFile.py arg1 arg2'。
你需要类似这样的东西:
for i in range(len(new_fields)):
Field_Name = new_fields[i]
gp.AddField_management(Input_Table, Field_Name, "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
告诉我这样做是否解决了你的问题。
我使用模型构建器创建了一个基本的脚本,用来给一个表格添加字段。我的任务是 (1) 能够在Arc中给数据表添加六个字段。 (2) 将数据集的结果写入这个表格。
根据我目前的工作,我可以给我在Arc中创建的一个空的shapefile添加多个字段,但每次都需要运行脚本并手动输入字段名称。(这一切都是在Arc中运行的,但我在IDLE中编辑它。)
上面的脚本是我最开始写的。我添加了一个新字段的列表:
new_fields=['DOM_CLASS', 'DOM_LIMIT', 'DOM_VAL', 'SUB_CLASS', 'SUB_LIMIT', 'SUB_VAL']
我在sys.argv[2]的末尾添加了分隔符。
Field_Name = sys.argv[2].split(',')
这是我收到错误信息的地方。
我把脚本的最后一行放进了一个循环里。
for i in range (len(new_fields)):
gp.AddField_management(Input_Table, Field_Name, "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
所以,我需要“把sys.argv[2]拆分成列表中的多个项目,然后把添加字段的代码放进一个循环里,以便添加多个字段值。”
我需要考虑到标题的范围是从3到8。
我花了好几个小时在网上阅读(并试图理解)所有能找到的Python帮助资料。非常感谢大家的帮助。