0

这可能是一个一般性的编程问题,但由于我是在加载项中进行的,因此在 GIS 论坛上提问。我有一个项目文件夹,其中包含我的硬盘上的多个文件的子文件夹,这些文件是我从 Python 插件中读取的,它的硬编码例如:

dem = r'C:/project/raster/dem'

并且加载项在

r'C:/project/Add-In'

文件夹。我尝试执行“../raster/dem”来定义输入栅格图层的路径,但无法读取。请建议我如何使其通用,以便如果我将项目文件夹移动到 D 驱动器,那么加载项仍然能够读取数据。

4

2 回答 2

1

您可以读取存储在用户配置文件下的配置文件。由于每次打开主机应用程序时 ArcGIS 加载项都会自行覆盖,因此您不希望将用户特定的配置信息存储在加载项本身中。

配置文件可以是您想要的任何格式(例如 XML、纯文本),但ConfigParser该类使读取和写入类似INI的文件格式变得容易。

于 2013-05-23T17:29:22.467 回答
1

您可以参考位于加载项中的材料,“安装”目录中包含的所有内容都将复制到 AssemblyCache 中的适当位置。然后,您可以通过执行以下操作来引用它:

local_path = os.path.abspath(os.path.basename(__file__))
raster_path = os.path.join(local_path, 'rasters')

从那里,将raster_path其视为正常路径。

于 2013-07-03T22:03:22.633 回答