python子进程通信_Python子进程通信
对于那些仍在努力解决这个问题的人来说,这就是我发现的。“stdin”=子流程.管道上面的方法可以在OSGeo4W64中使用一些命令行工具,但不是全部。例如,它与gdal_translate一起工作,而不是pdal translate。一)不清楚原因;(1)
我的解决方案:
OSGeo4Wenv=r’CALL“C:/OSGeo4W64/bin/o4w_环境蝙蝠“’
pdal_translate_String=r’c:/OSGeo4W64/bin/pdal translate c:\inputFile c:\outputFile radiusoutlierfilters.radiusoutlier.min_neighbors=2filters.radiusoutlier.radius=80.0filters.radiusoutlier.extract=真’
Cmd=str(OSGeo4Wenv)+’&;’+str(pdal_translateCmd)
外壳=subprocess.call(Cmd,stdout=None,shell=True)
怎么回事?
1) 打开shell,通过调用“OSGeo4Wenv”设置OSGeo4W环境。这通常由OSGeo4W.bat文件调用。没有这个,命令行程序就不知道在哪里可以找到库。在
2)pdal_translate命令随后被发送到dos shell,因为在Windows中,多个命令可以用“&;”符号分隔。我使用Python2.7的.call方法。它的优点是等待过程的结束。如果你使用多重处理,那就很好了地图.池方法同时启动多个进程。在
希望这能帮助别人!
尼古拉斯
还没有评论,来说两句吧...