python CSV

        หลายครั้งที่การพัฒนาระบบ GIS ต้องมีการเชื่อมต่อและทำการดึงข้อมูลจากระบบ MIS ไฟล์ข้อมูลต่างๆที่พบมักจะอยู่ในรูปแบบ excel กรณีที่มีแค่ไม่กี่ไฟล์ ก็สามารถใช้โปรแกรม GIS ทั่วไปแปลงได้ แต่พอมีไฟล์จำนวนมากๆหลายร้อยไฟล์เริ่มไม่สนุกแล้ว วันนี้ผมมีโค้ดภาษา python (script อเนกประสงค์) สำหรับแปลงไฟล์มาแนะนำกัน โดยจะแปลงจาก excel ให้เป็น CSV แล้วนำเข้าในระบบ GIS

         ภาษา python เป็นภาษาที่เข้าใจง่าย เขียนคล่อง รองรับ OOP ผมชอบใช้ในการจัดการข้อมูลหรือไดเรกทอรี่ หรือพัฒนาโปรแกรมขนาดเล็กๆแบบ console จำได้ว่าเคยใช้ python ในงานต่างๆหลายครั้ง แล้วก็ค่อนข้างสะดวก โดยเฉพาะเรื่องการจัดการไฟล์ ผมหัด python มาประมาณปีหนึ่งโดยได้รับการแนะนำจากอาจารย์ไพศาล ตอนนั้นใช้ในเรื่องจัดการไฟล์ภาพ (จำนวนเกือบห้าแสนไฟล์) ก็รู้สึกสะดวกดี นอกจากนี้ python ก็มี package สำหรับงาน GIS ขั้นสูงหลายๆตัวที่สามารถทำงานได้ดีไม่แพ้ซอฟท์แวร์ GIS อื่นๆ

       มาลองดูโค้ด Python กัน

def XLS2CSV(File): 
    ”’converts a MS Excel file to csv ”’
 
     print “—— Start Process ——“

     try:
          import win32com.client, os
          excel = win32com.client.Dispatch(‘Excel.Application’)
         fileDir, fileName = os.path.split(aFile)
         getname = os.path.splitext(fileName)
         newName = getname[0] + “.csv”
         myCSV = os.path.join(fileDir, newName)
         workbook = excel.Workbooks.Open(aFile)
         workbook.SaveAs(myCSV, FileFormat=24)

        workbook.Close(False)
         excel.Quit()
         del excel
  
         print “…Converted ” + nameOnly + ” to CSV”
    except:
         print “>>>>>>> Operation Faile !”

# Run Command

 convertXLS2CSV(r”D:\temp\popstat.xls”)

อ่านคู่มือ Python กับ CSV ได้ที่ http://docs.python.org/lib/csv-examples.html

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

สร้างเว็บไซต์หรือบล็อกฟรีที่ WordPress.com.

Up ↑

%d bloggers like this: