【问题标题】:Add shp. name as attribute, looping through dates添加 shp。名称作为属性,遍历日期
【发布时间】:2014-09-11 14:45:15
【问题描述】:

我已经坚持了几天了。我有一个包含数百个 shapefile 的文件夹。我想向 shapefile 添加一个属性字段,将 shapefile 的名称作为日期。 shapefile 名称包括 Landsat 路径/行、年份和 Julien 日期 ('1800742003032.shp)。我只想在“日期”字段下添加日期“2003032”。

这是我目前所拥有的:

arcpy.env.workspace = r"C:\Users\mkelly\Documents\Namibia\Raster_Water\1993\Polygons"
对于 arcpy.ListFeatureClasses("*", "ALL") 中的 fc:
打印 str("处理" + fc)
字段 =“日期”
表达式 = str(fc)[6:13]
arcpy.AddField_management(fc, field, "TEXT")
arcpy.CalculateField_management(fc, field, "表达式", "PYTHON")

结果:

处理1800742003032.shp
处理1800742009136.shp
处理1820732010289.shp
结束处理...

它运行完美(在示例 3 shapefile 上),但问题是当我在 Arcmap 中打开 shapefile 时,它​​们都具有相同的日期。结果表明它处理了 3 个 shapefile 中的每一个,并且添加字段管理必须有效,因为所有字段都已填充。因此,表达式或计算字段命令存在问题。

如何让它填充每个 shapefile 的特定日期,而不仅仅是让它们都是“2003032”?没有错误消息。

提前致谢!

【问题讨论】:

  • PS:我多次尝试了 Rocky Rudolph 的文件名插入脚本,但无法正常工作

标签: date attributes


【解决方案1】:

我想通了!对于计算字段管理,表达式不应包含在引号中。应该是:arcpy.CalculateField_management(fc, field, expression, "PYTHON")

这篇文章可能是在浪费时间,但至少它可能会帮助将来遇到类似问题的人。

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多