【发布时间】:2018-08-27 11:24:19
【问题描述】:
为了让你明白。我有这个循环:
for i,v in zip(ps,db):
print(i,v)
C:\Users\user\Desktop\sa\43001\PST\PST.shp C:\Users\user\Desktop\sa\43001\DBOUND\DBOUND.shp
C:\Users\user\Desktop\sa\43003\PST\PST.shp C:\Users\user\Desktop\sa\43003\DBOUND\DBOUND.shp
对于每次迭代中的每次导出,我希望根据所用文件目录中的编号将导出的文件放入一个新文件夹中。
示例:创建名为 43001 的文件夹,其中包含从 43001 目录中创建的文件 PST.shp。然后是一个名为43003 的文件夹,该文件夹具有对应的PST.shp。
此代码接近预期,但需要修复才能创建这些文件夹。
for i, v in zip(ps,db):
db1 = gpd.read_file(v)
pst1 = gpd.read_file(i)
wdp = gpd.sjoin(pst1, db1, how="left", op='within')
o = r'C:\Users\user\Desktop\resultss'
out = o +'\\'+i.split("\\")[-3] +'PST.shp'
wdp.to_file(out)
这个问题:
此代码在resultss 文件夹中将文件创建为43001PST.shp 和43002PST.shp,而不是按照应有的方式创建以数字为名称且名称为PST.shp 的文件夹。应该改变什么?
想要的是:
resultss>>43001>>PST.shp
resultss>>43003>>PST.shp
【问题讨论】:
-
你想知道如何创建目录吗?
-
os.mkdir(r'C:\Users\user\Desktop\resultss\' + i.split("\\")[-3])?