python - arcpy 获取要素数据集中要素类的数据库路径

标签 python database path dataset arcpy

我正在尝试获取要素类的数据库路径,该要素类可能在也可能不在要素数据集中。我正在使用要素类的 os.path.dirname。如果要素类不在要素数据集中(很好),这将为我提供数据库路径,但如果要素类在要素数据集中,它将为我提供要素数据集的路径。

这可以是文件、个人或 sde 地理数据库。我正在考虑使用“.sde”进行拆分,但如果它是不同类型的地理数据库,那将行不通。

路径示例可以是:

  • 对于要素数据集内部:C:\GISData\Data.gdb\Property\Erf
  • 在 gdb 根目录下:C:\GISData\Data.gdb\Erf

在这两种情况下,我都希望得到 C:\GISData\Data.gdb

谢谢。

最佳答案

看看这个短片 blog posting他们使用以下功能:

def get_geodatabase_path(input_table):
  '''Return the Geodatabase path from the input table or feature class.
  :param input_table: path to the input table or feature class 
  '''
  workspace = os.path.dirname(input_table)
  if [any(ext) for ext in ('.gdb', '.mdb', '.sde') if ext in os.path.splitext(workspace)]:
    return workspace
  else:
    return os.path.dirname(workspace)

关于python - arcpy 获取要素数据集中要素类的数据库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191633/

相关文章:

python - 如何从 Python 脚本中获取当前的 Python 解释器路径?

python - 多线程 Python 文件系统爬虫

python - 如何在Python中输出汉字?

sql - 如何在具有不同数据类型的列上将表连接在一起?

sql - 在 SQL What gets evaluated first 'where' or 'having'

javascript - 在 Javascript 中获取网站根目录

python - 从相应的行 CSV Python 中获取值

python - 颜色和标记的图例

数据库设计?

java - 在运行时查找路径以删除文件