我在ArcGIS环境中使用此代码来提取多个文件夹中地理数据库的文件路径。
gdbpath = path.split(featureclass)[0]
pathname = gdbpath.split(os.sep)
print pathname
Result:
['D:', 'QAQC', 'Imagery', 'GeographyScan', 'Chile', 'SNGM_Chile_Topography.gdb']
['D:', 'QAQC', 'Imagery', 'GeologyScan', 'Chile', 'Gloria', 'CODELCO_Chile_AlterationMap.gdb']
['D:', 'QAQC', 'Imagery', 'GeologyScan', 'Chile', 'Gloria', 'CODELCO_Chile_GeologicalMap.gdb']
['D:', 'QAQC', 'Imagery', 'GeologyScan', 'Chile', 'Gloria', 'CODELCO_Chile_SurfaceExplorationMap.gdb']
从这个结果我想要第四个字符串(GeographyScan,GeologyScan)单独做进一步的处理。有可能提取这个吗?
答案 0 :(得分:1)
评论太长了。前两行是重新组合你的字符串。结果并非针对gdb的所有路径进行推广,而只是获取所需的位置。
>>> p = ['D:', 'QAQC', 'Imagery', 'GeographyScan', 'Chile', 'SNGM_Chile_Topography.gdb']
>>> pth = "".join(["{}/".format(i) for i in p])[:-1]
>>> pth
'D:/QAQC/Imagery/GeographyScan/Chile/SNGM_Chile_Topography.gdb'
>>> # Now that it is reassembled for testing path separators, split the string
>>> ps = os.path.split(pth)[0]
>>> sub = ps.split("/")
>>> sub[3]
'GeographyScan'
>>> sub
['D:', 'QAQC', 'Imagery', 'GeographyScan', 'Chile']
>>> s = "/".join((i) for i in sub[:4])
>>>
>>> s
'D:/QAQC/Imagery/GeographyScan'
如果您只想要第3个切片,那么只需要它,如果您想要路径,包括您可以重新加入。
我已经以详细的形式提出了这个,所以可以看到程序。显然你可以组装必要的快捷方式。