0
我想寫一個Python腳本:與循環subprocess.call()Python的錯誤
讀取所有子目錄中的目錄(這是循環1)
讀取當前圖像在子目錄(不是循環,因爲它只有一個 圖像)
閱讀此影像後,修復的東西,它在當前的子目錄中寫入新的圖像 。
所有這一切都OK,但是當我嘗試這個新的映像運行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)
你的縮進到處都是......是代碼實際上看起來如何? (因爲如果是這樣,它甚至不會運行,但會給你一個'IndentationError')。 –
你爲什麼使用'shell = True'?您沒有使用任何shell功能,您唯一要做的就是繼續打開安全漏洞。另外,如果你想檢查stdout,你可以使用'subprocess.check_output'(注意,在'subprocess.call'中文檔明確指出*避免*設置'stdout = PIPE',因爲這可能導致死鎖!)。 – Bakuriu