PDA

View Full Version : การเปิดไฟล์ด้วยไพธอน !!



nprotech
15-03-2004, 12:48 AM
ไพธอนสนับสนุนการเปิดไฟล์หลายรูปแบบ เท็กซ์ไฟล์ธรรมดา เปิดไฟล์ 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 และเรียกใช้ฟังก์ชั่นอีกหลายฟังก์ชั่น แต่ไพธอนอนุญาตให้พวกเราใช้คำสั่งที่ง่ายและมีประสิทธิภาพสูง ฉบับนี้ แค่นี้นะครับ..

ar3s
16-03-2004, 01:14 PM
สุดยอดครับ คุณ nprotech ออกหนังสือสักทีสิครับ

asylu3
16-03-2004, 07:04 PM
ผมว่าอีกไม่นานคงได้อ่านของ เขานะครับ ใช่ไหมครับ คุณ nprotech

ปล. ผมตอบ PM แล้วนะครับ ใช้ได้แล้วนะครับ http://seri.kmutt.ac.th/cs02/python/test.cgi

nprotech
17-03-2004, 05:11 PM
ตอนนี้ผมกำลังแก้งานวิจัย จะเริ่มว่างอีกครั้งประมาณสิ้นเดือนมีนาคมนะครับ และกำลังเจียดเวลาให้กับการเขียนหนังสือไพธอนด้วยครับ
รายละเอียดพอเป็นสังเขป มีดังนี้ครับ

หนังสือไพธอนวางกรอบไว้ 19 บท ประกอบด้วยหัวข้อดังต่อไปนี้

1 ความรู้พื้นฐานเกี่ยวกับภาษาไพธอน

ประวัติภาษาไพธอน
ลักษณะเด่นของไพธอน
ดาวน์โหลดไพธอน
การติดตั้งไพธอน
เมนูต่าง ๆ
การเอ็กซีคิวซ์
การคอมไพล์
เมนูในไพธอนเซลล์
สีต่าง ๆ แทนไวยากรณ์
การใช้คีย์ลัด
การใช้คีย์บอร์ดเพื่อแก้ไข
คีย์บอร์ดและแป้น Enter
ระบบเตือนความจำ
การดีบัก
ปุ่มควบคุมการดีบัก

2 องค์ประกอบของภาษาไพธอน
การเขียนคำสั่ง
รูปแบบการเขียนโปรแกรม
อักขระที่ใช้ภายในไพธอน
ข้อมูลและชนิดข้อมูล
ตัวแปร
การกำหนดค่าให้ตัวแปร
การแสดงผลลัพธ์
ตรวจสอบการใช้ตัวแปร
ตรวจสอบชนิดตัวแปร
การสลับค่าตัวแปร
การแปลงชนิดตัวแปร
การลบตัวแปรและอ็อบเจ็ค
การรับข้อมูลจากคีย์บอร์ด


3 เครื่องหมายดำเนินการและนิพจน์
คำสั่งกำหนดค่าให้ตัวแปร
เครื่องหมายดำเนินการทางคณิตศาสตร์
เครื่องหมายดำเนินการเกี่ยวกับบิต
เครื่องหมายดำเนินการกำหนดค่า
เครื่องหมายดำเนินการทางตรรกศาสตร์


4 คำสั่งควบคุม
การวนทำงานซ้ำ
คำสั่ง range()
คำสั่ง for
คำสั่ง if
ทางเลือกหลายทาง
ตัวดำเนินการตรวจสอบเงื่อนไข
ปฏิบัติการลอจิกซึ่งกระทำกับเงื่อนไขหลายตัว
คำสั่ง break และ continue
คำสั่ง while
คำสั่ง xrange()


5 ฟังก์ชั่น
ประเภทของฟังก์ชั่น
ไลบราลี่ฟังก์ชั่น
ฟังก์ชั่นที่สร้างขึ้นใหม่
ภาพรวมของฟังก์ชั่น
การเขียนฟังก์ชั่นแบบคืนค่า
การเขียนฟังก์ชั่นแบบไม่คืนค่า
ฟังก์ชั่น buil-in ภายในไพธอน


6 การใช้งานสตริง
การจัดการสตริง
สมาชิกย่อยภายในสตริง
เครื่องหมาย Single และ Double Quote
เอ็กซ์เพรสชั่นของสตริง
ฟังก์ชั่น len()
การวนเข้าไปในสตริง
การเข้าถึงข้อมูลบางส่วนในสตริง
สตริงเป็น Immutable
คำสั่ง in ตรวจสอบข้อความภายในสตริง
ฟังก์ชั่นต่าง ๆ ภายในโมดูลสตริง

7 การใช้งานลีสต์(List Object)
การประกาศตัวแปรชนิดลีสต์
ตำแหน่งสมาชิกย่อยภายในลีสต์
การเข้าถึงสมาชิกภายในลีสต์
ขนาดของลีสต์
การวนเข้าไปอ่านค่าในลีสต์ด้วย for ลูป
การวนเข้าไปในลีสต์ด้วย for และ range()
ปฏิบัติการของลีสต์
การแก้ไขค่าภายในสมาชิกย่อย
การเลื่อนลีสต์
การลบลีสต์
ตัวแปรต่างชนิดภายในลีสต์
การคำนวณเมตริกซ์ด้วยลีสต์
ฟังก์ชั่นมาตรฐานที่ใช้สำหรับลีสต์


8 การใช้งานทูเปิ้ล (Tuple Object)
การประกาศตัวแปรชนิดทูเปิ้ล
ความแตกต่างระหว่างลีสต์และทูเปิ้ล
ตำแหน่งสมาชิกภายในทูเปิ้ล
การเข้าถึงสมาชิกภายในทูเปิ้ล
ขนาดของทูเปิ้ล
การวนอ่านค่าทูเปิ้ลด้วย for
การวนอ่านค่าทูเปิ้ลด้วย for และ range()
ปฏิบัติการของทูเปิ้ล
การอ่านข้อมูลภายในทูเปิ้ล
การแปลงทูเปิ้ลเป็นลีสต์


9 การใช้งานดิกชันนารี
การประกาศตัวแปรชนิดดิกชันนารี
การเข้าถึงตัวแปรภายในดิกชันนารี
การตรวจสอบคีย์ในดิกชันนารี
การอ่านค่าที่ตรงกับคีย์
การเคลียส์ข้อมูลทั้งหมดในดิกชันนารี
การคัดลอกตัวแปรดิกชันนารี
การสร้างดิกชันนารีใหม่ด้วยลีสต์
การอ่านข้อมุลในดิกชันนารีด้วย get()
อ่านข้อมูลในดิกชันนารีด้วย item()
การแปลงคีย์เป็น iterator
การแปลงค่าในดิกชันนารีเป็น iterator
การใช้ฟังก์ชั่น pop()
การใช้ฟังก์ชั่น popitem()
การเพิ่มคำให้กับดิกชันนารี
การรวมดิกชันนารีเข้าด้วยกัน

10 แฟ้มข้อมูล,ไดเร็คทอรี่ และไฟล์แบบต่าง ๆ
หลักการอ่านและเขียนแฟ้มข้อมูล
การเปิดแฟ้มข้อมูล
การอ่านและเขียนแฟ้มข้อมูล
การปิดแฟ้มข้อมูล
ไบนารีและเท็กซ์โหมด
บัฟเฟอร์
การเข้าถึงแบบ Sequence และ Random
การอ่านไฟล์ด้วยวิธีที่สั้นกว่า
การอ่านบรรทัดที่ต้องการ
การอ่านรายชื่อไฟล์ในไดเร็คทอรี่
การตรวจสอบขนาดไฟล์
การแยกชื่อไฟล์และนามสกุล
การลบไฟล์
ไดเร็คทอรี่
การอ่านรายชื่อไฟล์ใน .zip
การเปิดไฟล์ .zip
การบีบอัดไฟล์ด้วยรูปแบบ .zip
การอ่านและเขียน .ini
การอ่านไฟล์จากเว็บไซด์

11 อ็อบเจ็คโอเรียลเท็ด (Object Oriented)
การเขียนโปรแกรมด้วยแนวคิด Object Oriented
การสร้างคลาส
การสร้างอ็อบเจ็ค
ผลจากการสร้างอ็อบเจ็ค
การอ่านและแก้ไขตัวแปรภายในอ็อบเจ็ค
อาร์กิวเมนต์ของ Special Method ภายในคลาส
การสร้างฟังก์ชั่นภายในคลาส
ฟังก์ชั่น Constructor
ฟังก์ชั่น Destructor
การสืบทอดคลาส (Inheritance)
การสืบทอดคลาสหลายระดับ (Multiple Inheritance)
การอิมพอร์ทคลาส
Operator Overloading
ฟังก์ชั่น isinstance()
ฟังก์ชั่น issubclass()
การรับกลุ่มอาร์กิวเมนต์ด้วยเครื่องหมาย *

12 เธรดและโปรเซส (Tread and Process)
โปรเซส (Process)
องค์ประกอบของโปรเซส
สถานะของโปรเซส
Thread คืออะไร ?
องค์ประกอบของ Thread
วงจรชีวิตของ Thread
ข้อดีของ Muti-Threading
Threads ในภาษาไพธอน
การทำมัลติเธรดดิ่ง
โมดูล thread
โมดูล threading


13 ไพธอนและเน็ตเวอร์คโปรโตคอล
(Network Protocol)
กำลังดำเนินการ

14 เขียน CGI ด้วยภาษาไพธอน
กำลังดำเนินการ

15 Regular Expression
กำลังดำเนินการ

16 การพล็อตกราฟและคำนวณคณิตศาสตร์ด้วยภาษาไพธอน
กำลังดำเนินการ

17 การสร้างและจัดการรูปภาพด้วย PIL
กำลังดำเนินการ

18 การควบคุมฮาร์ดแวร์ผ่าน LPT Port
ข้อกำหนดมาตรฐานของ LPT Port
วงจรการเชื่อมต่อระหว่างหลอด LED และ LPT Port
ทดลองเล่นกับ Debug :
ติดตั้งโมดูล WinIOPort :
เริ่มต้นใช้งานโมดูล WinIoPort ภายในไพธอน :
การเขียนโปรแกรมไพธอนเพื่อควบคุมหลอด LED
การเขียนโปรแกรมไพธอนเพื่อควบคุมหลอดแสดงผล 7 Segment :
เขียนโปรแกรมไพธอนควบคุมรีเลย์และมอเตอร์กระแสตรง
เขียนไพธอนควบคุมการรับข้อมูลผ่านปุ่ม Switch
หลักการทำงานของสวิตช์
เขียนโปรแกรมควบคุม Stepper Motor
เขียนโปรแกรมควบคุม LCD Module
การเชื่อมต่อสายวงจรระหว่าง LPT และ LCD Module

19 เครื่องมือเสริมสำหรับภาษาไพธอน
เครื่องมือสำหรับการพล็อตสมการคณิตศาสตร์
เครื่องมือจัดการภาพ PIL (เหมือนที่ google กำลังใช้)
เครื่องมือสร้างเอกสาร pdf
และเครื่องมืออื่น ๆ ที่จำเป็น

ตอนนี้ผมเขียนไปแล้ว 15 บท เหลืออีก 4 บทครับ

asylu3
17-03-2004, 05:34 PM
ตอนนี้ผมเขียนไปแล้ว 15 บท เหลืออีก 4 บทครับ
สุดยอดจริงๆครับ ผมจะซื้อคนแรกเลยครับ แล้วก็ยินที่จะช่วยโปรโมทเต็มที่เลยครับ

nprotech
17-03-2004, 11:02 PM
ขอบคุณ คุณadmin อย่างสูงที่ให้ความสนใจนะครับ..
ถ้ามีคนสนใจเยอะ ๆ ก็คงจะดีมากเลยนะครับ..

tomzt
25-03-2004, 10:03 AM
ผมก็จะรอครับ เอาเป็นว่าผมจองเลยดีกว่า 1เล่ม ออกวันใหน สนพ. อะไร pm มาเลยน่ะครับ
ปล. บทที่ 14 อย่าลืมสอนวิธี config server ทั้ง apache กับ IIS ด้วยน่ะครับ และบทที่ 19 สร้าง pdf น่ะ เอาที่ใช้ไทยได้ด้วยน่ะครับ อยากใช้มาก

asylu3
25-03-2004, 06:25 PM
ผมก็จะรอครับ เอาเป็นว่าผมจองเลยดีกว่า 1เล่ม ออกวันใหน สนพ. อะไร pm มาเลยน่ะครับ
ดูเหมือนตอนนี้ขนาดหนังสือคุณ nprotech ยังไม่ออกยังมีแฟนๆติดตามขนาดนี้ผมว่าถถ้า วางแผงจริงคง ยอดขายดีแน่ๆครับ

nprotech
30-03-2004, 03:03 PM
ขอบคุณครับที่ให้กำลังใจ..
แต่ผมว่าแฟน ๆ คงไม่มากมายอย่างที่คุณ admin คิดนะครับ.. เพราะหนังสือไพธอนไม่ใช่หนังสือที่บรรจุในหลักสูตรบ้านเมืองเรา และที่สำคัญ หนังสือแบบนี้มีคนสนใจน้อย เพราะเท่าที่เห็นก็มีอยู่สองคน คือ คุณtomzt และคุณ admin สองคนครับ ... แต่ไม่เป็นไรครับ.. ยังไงผมจะพยายามเขียนหนังสือไพธอนให้เสร็จอย่างแน่นอนครับ

DreamPlusPlus
29-05-2005, 08:39 PM
ผมก็รออยู่อีกคนครับ อยากให้ออกไวไวจังครับ ผมจองด้วยนะครับ สั่งซื้อ ได้ก็ดีนะครับ ผมอยู่ จ.เลย ห่างไกลครับ อยากให้มีคุณจักกฤษ ซักร้อยๆ คนครับ ประเทศเจริญแน่ ๆ

ar3s
23-06-2005, 09:47 PM
ผมคนหนึ่งก็รอคอยหนังสืออยู่เหมือนกันคับ ติดตามมานานแล้วคับ

viva
29-06-2005, 03:12 PM
มาให้กำลังใจด้วยคน ครับ ออกเมื่อไร จะซื้อเหมือนกันครับ

Nixor
07-10-2005, 04:17 PM
ผมหาหนังสือ Python ภาษาไทยมานานมากแล้วนะเนี่ยถ้าคุณจะเขียนมันออกมาผมขอส่งเสริมเต็มที่ครับ
19 บท 19 บาท

ผมจะรอ แล้วจะวางแผงตามร้านหนังสือไหมครับ?

Nixor
07-10-2005, 04:58 PM
nprotech wrote:
เราสามารถยุบคำสั่งทั้งสามเข้าเป็นคำสั่งเดียวได้ดังนี้
>>> txt = open(\"c\"data.txt\",\"r\").read()
>>> print txt

ช่วยแก้ตรงนี้นิดนึงครับ ตรง open("c" น่ะครับ มันควรจะเป็น c: หรือเปล่า? :-)

paktoon
10-04-2006, 03:10 PM
อยากให้ออกมาเร็วๆจัง แต่ก็เป็นกำลังใจให้นะครับ สู้ๆๆ ออกแม่อไหร่อย่าลืมประกาศนะครับซื้อแน่นอน

Thanee Rangsimanwong
18-07-2010, 04:32 PM
ซื้อมาเก็บไว้เกือบปีแล้วครับ เพิ่งจะได้มีโอกาสเปิดดู แล้วก็เข้าเวปหา User Group ที่ใช้ไพธอน
แต่รู้สึกเป็นชนกลุ่มน้อยยังไงก็ไม่รู้ กระทู้ไพธอนในหลาย ๆ บอร์ด ล้วนแต่โพสต์ไว้นาน ๆ แล้วทั้งนั้น
จะหาพี่เลี้ยงได้หรือป่าวเนี่ย