通过循环将文件导出到新文件夹中?

时间:2018-08-27 11:24:20

标签: python loops

为了让您理解。我有这个循环:

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.shpresultss,而不是在文件夹中按数字创建名称为PST.shp的文件夹。应该更改什么?

通缉犯是:

resultss>>43001>>PST.shp
resultss>>43003>>PST.shp

1 个答案:

答案 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()