ให้เรตสมาชิก: 5 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งาน
 

การค้นหาคำหรือ ตัวอักษร ในไฟล์ ที่ต้องการ สามารถนำมาประยุกต์ใช้งานได้ดังต่อไปนี้

ตัวอย่างการใช้งาน : เป็นการค้นหา อักษรภาษาไทย ที่อยู่ในไฟล์ เมื่อเจอแล้วให้ แสดงผล ชื่อไฟล์และบรรทัดที่มีอักษรนั้นอยู่

ขั้นตอนการทำงาน


1. การค้นหา Path ของไฟล์ทั้งหมด

 

def get_file paths(directory):
    file_paths = [] 
    for root, directories, files in os.walk(directory):
        for filename in files:           
            filepath = os.path.join(root, filename)
            file_paths.append(filepath) 
    return file_paths 


ตัวอย่างการเรียกใช้งาน
ให้โฟลเดอร์ชื่อ python path: /home/mylaptop/work/python
ภายในมีไฟล์ python_file.py, text_file.text, xml_file.xml
ต้องส่งค่า Directory
full_file_paths = get_filepaths("home/mylaptop/work/python")

"/home/mylaptop/work/python" : คือ path ของ directory ที่ต้องการค้นหาคำ หรืออักษร

ผลลัพธ์ :


[/home/mylaptop/work/python/python_file.py, /home/mylaptop/work/python/text_file.text, /home/mylaptop/work/python/xml_file.xml]



2. การกรองประเภทของไฟล์

 

def get_file paths(directory):
  for f in full_file_paths:
    if f.endswith(".py"):
        print f


ต่อเนื่องจาก ข้อ 1. เมื่อได้ path ของแต่ละไฟล์มาแล้ว ก็นำมากรองประเภทของไฟล์ที่ต้องการ จากตัวอย่างต้องการหาจากไฟล์ .py

3. การเปิด และอ่านไฟล์
เมื่อได้ path ของไฟล์มาแล้ว ต้องทำการเปิดและอ่านข้อมูลออกมาทีละบรรทัด


open_file = open(f)
open_file.read
for line in open_file:
        print line
open_file.close




ต่อเนื่องจาก ข้อ 2. ต้องทำการเปิดไฟล์ โดยส่ง path ของไฟล์ลงไป(จากตัวอย่าง path คือ f)
เมื่อเปิดไฟล์แล้ว ก็อ่านไฟล์ และ for ออกมา เพื่อให้อ่านไฟล์ทีละบรรทัด
line ก็คือ ค่าของแต่ละบรรทัด



4. การนำข้อมูลในไฟล์ไปค้นหา อักษร หรือคำที่ต้องการ

def is_ascii(data):
    for i in range(0,len(data)):
        conv = ord(data[i])
        if 161 <= conv <= 251:    
            return False



ต่อ เนื่องจากข้อ 3. เมื่อได้ค่าแต่ละบรรทัดออกมาแล้ว ก็ต้องการนำค่าที่ได้ไปเช็ค โดยส่งค่าแต่ละบรรทัดไปยังฟังก์ชัน โดยสั่งวน for เพื่ออ่านค่าทีละตัว โดยนำค่าแต่ละตัวไปแปลงเป็นค่าของตัวเลขเพื่อ นำไปเช็คกับ รหัส ascii โดยตัวอย่างเช็คภาษาไทย รหัส ascii จะอยู่ในช่วง 161 - 251 ถ้าเจออักษรภาษา ให้ return False



การทำงานก็จะนำทั้ง 4 มารวมกัน เป็นไฟล์ .py สั่งรัน ก็จะสามารถค้นหาค่าที่ต้องการได้

 

 

หัวเรื่อง
Search Thai language in flie with Python
หมวดหมู่
Python, Python
ฮิต
21632
ผู้สร้างเอกสาร
คะนึงรัตน์ ลิ่มตระกูล
วันที่สร้างเอกสาร
2015-02-11 18:52:04

search_thai_lang.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 659 bytes

ผู้อัพโหลดไฟล์ คะนึงรัตน์ ลิ่มตระกูล

วันที่อัพโหลด 2015-02-10 18:43:18


 

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Pillow library ฟังก์ชั่น Filters สำหรับการปรับ Filters ของภาพให้มีลูกเล่นมากขึ้น
โดย benzas00123 อ 28 ม.ค. 2020 6:52 pm บอร์ด Python Knowledge
0
10
อ 28 ม.ค. 2020 6:52 pm โดย benzas00123
เรียนรู้การใช้สูตรจาก Excel
โดย nutchasn อ 28 ม.ค. 2020 6:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
1
อ 28 ม.ค. 2020 6:51 pm โดย nutchasn
Pillow library ฟังก์ชั่น convert ฟังก์ชั่นสำหรับเปลี่ยนโหมดสีของภาพ
โดย benzas00123 อ 28 ม.ค. 2020 6:40 pm บอร์ด Python Knowledge
0
6
อ 28 ม.ค. 2020 6:40 pm โดย benzas00123
ทำความรู้จักโปรแกรม power bi ในการวิเคราะห์ข้อมูล
โดย nutchasn อ 28 ม.ค. 2020 4:30 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
3
อ 28 ม.ค. 2020 4:30 pm โดย nutchasn
ทำความรู้เกี่ยวประเภทของสมุดรายวันขั้นต้น
โดย nutchasn อ 28 ม.ค. 2020 3:33 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
3
อ 28 ม.ค. 2020 3:33 pm โดย nutchasn
ความขี้เกียจ
โดย noppadonsk อ 28 ม.ค. 2020 3:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
9
อ 28 ม.ค. 2020 3:14 pm โดย noppadonsk
เรียนรู้หลักการในการเขียน Flow chart
โดย nutchasn อ 28 ม.ค. 2020 2:46 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
อ 28 ม.ค. 2020 2:46 pm โดย nutchasn
ขอสอบถามครับ ไม่สามารถแสดงผลรูปภาพบน html ได้
โดย benzas00123 อ 28 ม.ค. 2020 2:28 pm บอร์ด HTML CSS
6
20
อ 28 ม.ค. 2020 3:03 pm โดย benzas00123
ความแตกต่างของการบันทึกบัญชีแบบ Periodic และ Perpetual
โดย nutchasn อ 28 ม.ค. 2020 1:38 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
5
อ 28 ม.ค. 2020 1:38 pm โดย nutchasn
ทำความรู้จักกับโปรแกรม easy acc โปรแกรมอำนวยความสะดวยต่อการจัดการระบบบัญชี
โดย nutchasn จ 27 ม.ค. 2020 7:12 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
50
จ 27 ม.ค. 2020 7:12 pm โดย nutchasn
อยากทรบวิธีการตรวจสอบความถูกต้องของเลขบัตรประชาชน
โดย Ittichai_chupol จ 27 ม.ค. 2020 6:33 pm บอร์ด Programming - PHP
0
62
จ 27 ม.ค. 2020 6:33 pm โดย Ittichai_chupol
Pillow library ฟังก์ชั่น rotate ใช้สำหรับการหมุนรูปภาพ
โดย benzas00123 จ 27 ม.ค. 2020 6:22 pm บอร์ด Python Knowledge
0
17
จ 27 ม.ค. 2020 6:22 pm โดย benzas00123
Pillow library ความแตกต่างระหว่างฟังก์ชั่น thumbnail และ resize
โดย benzas00123 จ 27 ม.ค. 2020 6:10 pm บอร์ด Python Knowledge
0
10
จ 27 ม.ค. 2020 6:10 pm โดย benzas00123
Pillow library การปรับขนาดรูปภาพด้วยฟังก์ชั่น resize()
โดย benzas00123 จ 27 ม.ค. 2020 5:58 pm บอร์ด Python Knowledge
0
16
จ 27 ม.ค. 2020 5:58 pm โดย benzas00123
วิธีการเดินทางจากบ้าน นครราชสีมา - กรุงเทพฯ
โดย nutchasn จ 27 ม.ค. 2020 3:40 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
16
จ 27 ม.ค. 2020 3:40 pm โดย nutchasn
คนเจ้าชู้?
โดย noppadonsk จ 27 ม.ค. 2020 11:16 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
14
จ 27 ม.ค. 2020 11:16 am โดย noppadonsk
รับติดตั้งระบบ Skype for Business และ Microsoft Teams
โดย Atomseed Suckseed จ 27 ม.ค. 2020 11:05 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
49
จ 27 ม.ค. 2020 11:05 am โดย Atomseed Suckseed
ขอสอบถามเกี่ยวกับ การ send_file zip ครับ
โดย benzas00123 ส 25 ม.ค. 2020 8:44 pm บอร์ด Programming - C/C++ & java & Python
6
67
อ 28 ม.ค. 2020 10:24 am โดย benzas00123
ขอสอบถามเกี่ยวกับวิธีสร้างตัวไว้สำหรับ download หน่อยครับ
โดย benzas00123 ส 25 ม.ค. 2020 5:53 pm บอร์ด Programming - C/C++ & java & Python
2
28
จ 27 ม.ค. 2020 4:00 pm โดย mindphp
pycharm รันภาษาไทยไม่ได้
โดย Anonymous ส 25 ม.ค. 2020 5:29 pm บอร์ด Programming - C/C++ & java & Python
0
14
ส 25 ม.ค. 2020 5:29 pm โดย บุคคลทั่วไป