ไพธอนสนับสนุนการเปิดไฟล์หลายรูปแบบ เท็กซ์ไฟล์ธรรมดา เปิดไฟล์ html จากเว็บไซด์ การเปิดไฟล์ zip และอื่นๆ อีกมาก
ในตอนนี้จะนำเสนอการเปิดไฟล์พื้นฐาน ดังนี้
1. เปิดไฟล์จากโลคอลไดวร์ ใช้ฟังก์ชั่น open()
เช่น
>>> f = open("c:data.txt","r")
>>> txt = f.read()
>>> f.close()
>>> print txt
มีขั้นตอนสามจังหวะ คือ เปิด อ่าน และปิด รายละเอียดโหมดการเปิดไฟล์เหมือนภาษาซีครับ
เราสามารถยุบคำสั่งทั้งสามเข้าเป็นคำสั่งเดียวได้ดังนี้
>>> txt = open("c"data.txt","r").read()
>>> print txt
วิธีการที่สองนี้เป็นวิธีที่สะดวก เพราะไม่ต้องคอยปิดไฟล์เหมือนวิธีแรก ไพธอนจะปิดไฟล์ที่อ่านขึ้นมาอย่างอัตโนมัติ
2. เปิดไฟล์ html หรือไฟล์จาก url ต่าง ๆ ในระบบอินเตอร์เน็ต ใช้ฟังก์ชั่น urlopen() ภายในโมดูล urllib ดังตัวอย่างต่อไปนี้
>>> import urllib
>>> f = urllib.urlopen("http://www.google.com/mylink.html")
>>> txt = f.read()
>>> f.close()
>>> print txt
ในทำนองเดียวกัน เราสามารถรวมการเปิด อ่าน และปิดแฟ้ม html ได้เช่นเดียวกับไฟล์ทั่วไป ดังนี้
>>> import urllib
>>> txt = urllib.urlopen("http://www.google.com/mylink.html").read()
>>> print txt
ข้อมูลที่อยู่ในตัวแปร txt คือเนื้อหาภายในเอกสาร html
3. เปิดแตกไฟล์ที่ถูกบีบอัด เช่น .zip
>>> import glob, zipfile
>>> f = zipfile.ZipFile("c:tempmyzip.zip","w")
>>> for name in glob.glob("c:temptoken*.*"):
f.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED)
>>> f.close()
ภายในไดเร็คทอรี่ c:temptoken (ของเครื่องที่ผมใช้) ประกอบด้วยไฟล์มากมาย ในตัวอย่างนี้เราต้องการบีบอัดไฟล์เหล่านั้นเอาไว้ใน c:tempmyzip.zip ฟังก์ชั่น glob() ใช้สำหรับแสดงรายชื่อทั้งหมดภายในไดเร็คทอรี่ c:temptoken และตัวอย่างนี้เป็นการบับอัดด้วยอัตราปกติ(ถ้าบีดอัดสูง ๆ ขนาดจะเล็ก) (ZIP_DEFAULTED)
สำหรับเกร็ดเล็กน้อยวันนี้ คงทำให้เพื่อน ๆ รู้สึกชอบไพธอนขึ้นมาบ้างนะครับ..
เพราะอย่างน้อยถ้าจะอ่านไฟล์จาก http ด้วยภาษาซี หรือภาษาอื่นๆ จะต้องติดต่อผ่าน socket และเรียกใช้ฟังก์ชั่นอีกหลายฟังก์ชั่น แต่ไพธอนอนุญาตให้พวกเราใช้คำสั่งที่ง่ายและมีประสิทธิภาพสูง ฉบับนี้ แค่นี้นะครับ..