循环中带有subprocess.call()的Python错误

时间:2013-07-13 04:23:19

标签: python call subprocess popen synchronous

我想编写一个Python脚本:

  1. 读取目录中的所有子目录(这是循环1)

  2. 读取子目录中的当前图像(不是循环,因为它只有一个 图像)

  3. 阅读此图片后,修复并将其写入新图像 在当前子目录中。

  4. 所有这一切都没问题,但是当我尝试使用这个新图片运行subprocess.call()时,我遇到了一个问题:

    新图片 - > subporcess.cal() - >新形象2

    从python脚本生成的'new image 2'在打开时会出错(但如果我尝试通过命令行运行或没有遍历子目录,则可以正常工作)。

    这是我上面描述的代码:

    for dayFolder in listDayFolder:
               output_dataset.GetRasterBand(1).WriteArray(data1) 
    
            warp = "gdalwarp -t_srs '+proj=longlat +datum=WGS84 +no_defs' -ot Float32 -tps mecrator.tif " + fileName + ".tif";
    
    
           pipe = subprocess.call([warp], stdout=subprocess.PIPE, shell=True)
    

1 个答案:

答案 0 :(得分:0)

我的猜测是,问题在于fileName未被重新分配。我敢打赌,如果在致电print warp之前致电subprocess.call,您会注意到同一命令的大量重复。也许你是这个意思:

warp = "gdalwarp -t_srs '+proj=longlat +datum=WGS84 +no_defs' "+
       "-ot Float32 -tps mecrator.tif " + dayFolder + "/" + fileName + ".tif"