您可以使用os.listdir()
列出当前目录中的文件和文件夹。
这将返回当前目录(或作为参数指定给它的目录,如果未指定参数,则检查当前目录)中的所有文件的列表。
然后您可以检查名称以结尾的文件.shp
using string.endswith()
函数,然后使用它来创建新文件。
小部分的示例 -
import os , os.path
l = os.listdir()
for i in l:
if i.endswith('.shp'):
s1 = s.split('.')[0] + '.txt'
最后 s1 将包含扩展名为.txt
.
然后你可以在这个文件上执行你的逻辑,并继续这样做。
完整的代码看起来像 -
导入 ogr, os, sys, osr,os.path
os.chdir('..\配置文件')
l = os.listdir()
对于 l 中的 i:
如果 i.endswith('.shp'):
s1 = s.split('.')[0] + '.txt'
文件 = 打开(s1, 'w')
driver = ogr.GetDriverByName('ESRI Shapefile')
datasource = driver.Open(i, 0)
if datasource is None:
print 'Could not open file'
sys.exit(1)
layer = datasource.GetLayer()
feature = layer.GetNextFeature()
while feature:
id = feature.GetFieldAsString('ID')
Distanta = feature.GetFieldAsString('DIST')
Z = feature.GetFieldAsString('Z')
geom = feature.GetGeometryRef()
x = str(geom.GetX())
y = str(geom.GetY())
file.write(id + " " + Distanta + " " + "[X]:" + " " + x + ' ' + '[Y]:' + " " + y + " " + " " + "[Z]" + Z + " " + "\n")
feature.Destroy()
feature = layer.GetNextFeature()
datasource.Destroy()
file.close()
打开文件等的更好方法是使用with
陈述。查一下它的教程here.