วันพุธที่ 7 มกราคม พ.ศ. 2558

เรียกใช้ command line ด้วย Python เพื่อทำงานแบบ Batch

การเรียกใช้ command line เพื่อทำงานแบบ Batch ช่วยทำให้เราประมวลงานต่างๆ ที่ต้องเรียกใช้ซ้ำๆ หรือ ต้องปรับเปลี่ยนพารามิเตอร์ต่างๆ แล้วเรียกใช้ซ้ำแล้วซ้ำอีก เช่นการเรียกใช้ Module ของ GDAL/OGR เพื่อประมวลผลภาพตามตัวอย่าง GDAL/gdal_translate หากเราเลือกใช้ Python ในการเขียน script ชุดไลบรารี่ที่ใช้คือ subprocess การเรียกใช้ subprocess ค่อนข้างลึกลับทีเดียว เขียนทีไร อ่านคู่มือซ้ำซ้ำมาก็ยังไม่ทำงานได้ยั่งใจ คราวนี้ได้ตัวอย่างที่ดี ทำงานได้อย่างใจ ก็จดไว้ตรงนี้แล้วกัน import subprocess


# constants
cmd = r'C:\Program Files\GDAL\gdal_translate.exe'
src = r"D:\tmp\B0679.tif"
dst = r"D:\tmp\B0679rgb.tif"
option = "-ot Byte -b 1 -b 2 -b 3 " # just for example!


# make Path valid
def QuotePath(item):
return "\"" + item + "\""

fullCmd = ' '.join([cmd, option, QuotePath(src), QuotePath(dst)])
print fullCmd
subprocess.Popen(fullCmd)


ไม่มีความคิดเห็น: