为了让您理解。我有这个循环:
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)
与此有关的问题:
此代码在43001PST.shp
文件夹中将文件创建为43002PST.shp
和resultss
,而不是在文件夹中按数字创建名称为PST.shp
的文件夹。应该更改什么?
通缉犯是:
resultss>>43001>>PST.shp
resultss>>43003>>PST.shp
答案 0 :(得分:0)
如果 0010 0000
OR 0000 0100
OR 0000 0001
------------
0010 0101 = 0x25 hex = 37 dec
方法可以创建目录,请尝试以下操作:
.to_file()
如果没有,请先在out = o + '\\' + i.split("\\")[-3] + '\\PST.shp'
之前调用os.mkdir()
创建目录:
.to_file()