免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1486|回复: 6
收起左侧

[求助] arcpy.SelectLayerByAttribute相关问题

[复制链接]

1

主题

214

铜板

1

好友

实习生

Rank: 1

积分
8
发表于 2021-7-3 23:04 | 显示全部楼层 |阅读模式
使用arcpy.SelectLayerByAttribute筛选'FUNCCLASS'为‘1’后,导出的仍然和源文件一模一样。觉得是arcpy.SelectLayerByAttribute没有选中任何数据,代码如下。出了什么问题呢?
#coding=utf-8
import arcpy
import os
# 获取当前路径
currentPath=os.getcwd()
# 遍历当前路径
files=os.listdir(currentPath)
print(files)
arcpy.env.workspace=currentPath
qry = "'FUCCLASS' = \'1\'"
for file in files:
    if 'shp' in file and 'R' in file:
        print(file)
        temp_name = file.split('.')
        arcpy.MakeFeatureLayer_management(file, temp_name[0])
        arcpy.SelectLayerByAttribute_management(temp_name[0], 'NEW_SELECTION', "'FUCCLASS' = '{0}'".format('1'))
        out_file = temp_name[0] + '_test3.shp'
        arcpy.CopyFeatures_management(temp_name[0], out_file)

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-7-5 11:14 | 显示全部楼层
啊这,temp_name[0]又不是图层,CopyFeatures_management(temp_name[0], out_file),肯定导出自己呀
回复 支持 反对

使用道具 举报

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-7-5 11:15 | 显示全部楼层
makefeaturelayer哭了,我干了啥,等号和对象都去了哪了
回复 支持 反对

使用道具 举报

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-7-5 11:18 | 显示全部楼层
arcpy你可以理解为文字版arcgis操作。选择的对象应该是图层,然后你想导出,肯定对象也是图层
回复 支持 反对

使用道具 举报

6

主题

1万

铜板

5

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
739
发表于 2021-7-5 11:22 | 显示全部楼层
我是新人,我瞎说的。总之就是对象没了,变回单身狗了,谁都不理不调用,导出了一个原配。(逃doge)
回复 支持 反对

使用道具 举报

0

主题

689

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
64
发表于 2021-8-12 16:20 | 显示全部楼层
arcpy.MakeFeatureLayer_management(file, temp_name[0])
后面的参数是定义图层的名称,不要用变量代替。
根据你的代码,temp_name[0]只是一个目录路径,怎么可能导出数据。
回复 支持 反对

使用道具 举报

30

主题

2万

铜板

59

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6283
QQ
发表于 2022-2-13 18:36 | 显示全部楼层
感谢分享:mg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表