我正在寫一個python(2.7)腳本,用於檢查是否有一些文件丟失並通過wget下載它們。一切工作正常,但下載完成後,腳本應該退出,bash(我從哪裏啓動python腳本)沒有正確顯示。 我有光標,可以輸入東西,但標準提示不顯示。我必須調整終端窗口的大小以正確顯示提示。這可能是什麼原因?使用Python中的wget與Popen
tilenames = ['File1', 'File2', ...]
web_url = http://...
for t in tilenames:
try:
open(t, 'r')
except IOError:
print 'file %s not found.' % (t)
command = ['wget', '-P', './SRTM/', web_url + t ]
output = Popen(command, stdout=subprocess.PIPE)
print "Done"
我認爲這與wget過程的調用方式有關。最後的命令打印「完成」實際上是在wget將其所有輸出寫入shell之前完成的。
你應該考慮使用'urllib.urlretrieve()',而不是'wget'和'os.path中.exists()'而不是打開所有文件(並且不關閉它們)。 – 2012-07-20 13:51:16
你應該真的考慮@SvenMarnach所做的評論。如果您可以使用Python庫執行相同的任務,則無需依賴系統程序(如'wget')。處理輸出更容易,並且不會因爲每個文件啓動一個新進程而導致系統開銷。 http://docs.python.org/library/urllib2.html – 2012-07-20 14:31:06