Page 108 - python
P. 108

82




                             ื
                   7.10 การสบคนขอมูลรายชื่อวิทยานิพนธ 10,000 รายการ
                          ในหัวขอนี้แสดงตัวอยางการโหลดไฟลรายชื่อวิทยานิพนธจากเว็บไซตและทําการแยกแตละ
                                
                   รายการดวยเครื่องหมายขึ้นตนบรรทัดใหม ("\n") จากนั้นใชคําสั่ง filter เพื่อกรองคําคน และแสดงผลลัพธ
                   รายชื่อวิทยานิพนธ ที่ผานการสืบคน


                   ตัวอยางที่ 7.11 การสืบคนขอมูลรายชื่อวิทยานิพนธ
                    import urllib, urllib.request
                    url = "http://dsdi.msu.ac.th/programming/thailis-10000.txt"

                    s = urllib.request.urlopen(url).read().decode('utf-8', 'ignore').split("\n")
                    q = "การสืบสาน"
                    result = list(filter(lambda a:q in a,s))
                    print("พบ '%s' ทั้งหมด %d เลม"%(q,len(result)))
                    for i in range(len(result)):

                      print("%d) %s"%(i+1,result[i]))

                   ผลลัพธ :

                    พบ 'การสืบสาน' ทั้งหมด 8 เลม
                    1) การสืบสานการทอผาพื้นเมืองของชุมชน ตําบลหาดเสี้ยว อําเภอศรีสัชนาลัย จังหวัดสุโขทัย
                    2) การสืบสานและอนุรักษวัฒนธรรมประเพณีของกลุมชาติพันธุชาวอาขาที่เอื้อตอเยาวชนอาขา :
                    กรณีศึกษาเยาวชนอาขา หมูบานอาโยะใหม ตําบลแมสลองใน อําเภอแมฟาหลวง จังหวัดเชียงราย

                    3) มหาวิทยาลัยราชภัฏ : การสืบสานพระราชปณิธาน
                    4) การสืบสานวัฒนธรรมทองถิ่นของสภาวัฒนธรรมจังหวัดขอนแกน
                    5) วิธีคิดและบทบาทการสืบสานวัฒนธรรมของปราชญทองถิ่น กรณีศึกษา นายสาร สาระทัศนานันท

                                                            ี
                                                                                 ํ
                                  ั
                                    ั
                                                                                    ํ
                                                                                         ุ
                                                                                             ั
                                                                                                  ั
                                                                                                
                    6) บทบาทของวดกบการสืบสานวัฒนธรรม กรณศึกษาวัดพระบาทภูพานคา อาเภออบลรตน จงหวัด
                    ขอนแกน
                    7) เพลงพื้นบานราชบุรีกับการสืบสานมรดกทางวัฒนธรรม
                    8) การสืบสานภูมิปญญากระติบขาวลายขางกระแตแบบดั้งเดิมไทยอสานเชิงฟสิกส
                                                                            ี
                          ตัวอยางที่ 7.11 ไฟล thailis-10000.txt เก็บรายชื่อวิทยานิพนธจํานวน 10,000 เลม เก็บไวที่ลิงค
                                                                   
                   http://dsdi.msu.ac.th/programming/ อานเนื้อไฟลเขามาเกบในตัวแปร s โดยถอดรหัสเปน utf-8
                                                                         ็
                                                       
                   ถาพบขอความที่โหลดไมไดให ignore จากนั้นแยกดวยเครื่องหมายขนตนบรรทัดใหม ("\n") จะไดตัวแปร
                                                                            ึ้
                   s เก็บรายชื่อวิทยานิพนธ 10,000 เลม
                          คําสั่ง  list(filter(lambda a:q in a,x)) เปนการกรองใหเหลือเฉพาะรายการที่มีคําวา "การสืบ
                   สาน" และเก็บผลลัพธไวในตัวแปร result จากนั้นพมพจํานวนผลลัพธจากการสืบคนดวย len(result)
                                                               ิ
                                                                                                       ิ
                   จากนั้นแสดงรายการผลลัพธ โดยวนรอบจาก 0 ถึง ควายาวของผลลัพธ len(result) ในแตละรอบพมพ
                   ดวยคําสั่ง print("%d) %s"%(i+1,result[i])) เมื่อ i+1 คือ ลําดับของผลลัพธที่พบเริ่มจากลําดับที่ 0 จึงให
                   เพิ่มคาดวย 1 เพื่อแสดงหมายเลขลําดับของผลการสืบคน
   103   104   105   106   107   108   109   110   111   112   113