การค้นหาคำหรือ ตัวอักษร ในไฟล์ ที่ต้องการ สามารถนำมาประยุกต์ใช้งานได้ดังต่อไปนี้
ตัวอย่างการใช้งาน : เป็นการค้นหา อักษรภาษาไทย ที่อยู่ในไฟล์ เมื่อเจอแล้วให้ แสดงผล ชื่อไฟล์และบรรทัดที่มีอักษรนั้นอยู่
ขั้นตอนการทำงาน
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
- ฮิต
- 91196
- ผู้สร้างเอกสาร
- คะนึงรัตน์ ลิ่มตระกูล
- วันที่สร้างเอกสาร
- 2015-02-11 18:52:04