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

ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ไพทอนกับการอ่านเขียนไฟล์ เป็นเรื่องง่ายมากๆ โดยไพทอน เตรียมฟังก์ชั่นไว้สำหรับจัดการกับไฟล์ อยู่แล้วโดยเราไม่ต้อง import อะไรเพิ่มเข้ามา การอ่านเขียนไฟล์ ใน ไพทอน ก็จะคล้ายๆ กับภาษา C, PHP
ซึ่งจะมีฟังก์ชั่น open เป็นพระเองของเรา กล่าว คือไม่ว่าเราต้องการจะทำอะไร กับไฟล์ เราก็ต้อง เปิดไฟล์ ด้วย ฟังก์ชั่น open กันก่อน

รูปแบบฟังก์ชั่น open


file object = open(file_name [, access_mode][, buffering])

ฟังก์ชั่นจะคืนค่าออกมาเป็น object
file_name คือไฟล์ที่เราต้องการเปิด
access_mode คือรูปแบบในการเปิดไฟล์ดูรายละเอียดในตารางด้านล่าง
buffering กำหนดว่าเราจะใช้ buffer หรือไม่

mode รายละเอียด
r เปิดไฟล์เพื่ออ่านอย่างเดียว. pointer อยู่ที่จุดเริ่มต้นของไฟล์. **ถ้าเราไม่ก็หมด access_mode ไพทอนจะเปิดไฟล์ด้วย mode นี้.
rb เปิดไฟล์อ่านในรูปแบบ binary .
r+ เปิดไฟล์เพื่ออ่านและเขียน pointer อยู่ที่จุดเริ่มต้นของไฟล์
rb+ เปิดไฟล์เพื่ออ่านและเขียนด้วยรูปบบ binary pointer อยู่ที่จุดเริ่มต้นของไฟล์
w เปิดไฟล์เพื่อเขียนเท่านั้น ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
wb เปิดไฟล์เพื่อเขียนในรูปแบบ binary เท่านั้น ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
w+ เปิดไฟล์เพื่ออ่านและเขียน ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
wb+ เปิดไฟล์เพื่ออ่านและเขียนแบบ binary ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
a เปิดไฟล์ เพื่อต่อท้ายข้อมูล เหมาะสำหรับไฟล์ที่มีข้อมูลอยู่แล้วและต้องการเพิ่ม เนื้อหาลงไป ไม่มีการเขียนทับข้อความเดิม และถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้เอง
ab เปิดไฟล์ เพื่อต่อท้ายข้อมูลรูปแบบข้อมูลเป็น binary เหมาะสำหรับไฟล์ที่มีข้อมูลอยู่แล้วและต้องการเพิ่ม เนื้อหาลงไป ไม่มีการเขียนทับข้อความเดิม และถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้เอง
a+ เปิดไฟล์เพื่ออ่านและเขียน ต่อท้ายไฟล์
ab+ เปิดไฟล์เพื่ออ่านและเขียน ต่อท้ายไฟล์ ในรูปแบบ binary

การเปิดไฟล์จะใช้คู่กับ ปิดไฟล์เสมอ
รูปแบบหลังจากเปิดไฟล์ขึ้นมาใช้งานแล้ว เราก็ปิดไฟล์ด้วย ฟังก์ชั่น close()
รูปแบบ
fileObject.close()ตัวอย่าง file.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
l  = 1
f = open('test_file.txt', 'w')
while True:
        print('%d ถ้าจะออกจากโปรแกรมพิมพ์ bye ' %l)
        title = input('%d ป้อนชื่อ :' %l)
        cost = input('%d ป้อนชือเล่น :' %l)
        if title=='bye' or cost=='bye' :
            break
        f.write('%.2d,  %s,  %s \n' %(l, title, cost))
        l = l+1
f.close()

จากตัวอย่างโปรแกรม coding utf8 เป็นการกำหนดว่าไฟล์นี้เราต้องการ coding เป็น utf8 ซึ่งจะใช้งานกับภาษาไทย และภาษาอื่นๆได้
เมื่อรันโปรแกรมจะมีหน้าจอให้เรากรอก ชื่อ และ ชื่อเล่น ขึ้นมาเรื่อยๆ และ โปรแกรมจะเขียนลงไปในไฟล์ ชื่อ test_file.txt ให้ สนกว่าเราจะกรอกชื่อ หรือ ชื่อเล่นเป็น bye
*** ถ้าต้องการดูข้อมูลในไฟล์ ก็สามารถเปิดไฟล์ test_file.txt ด้วยโปรแกรม text editor เช่น notepad ดูได้

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 25 กันยายน 2561
โดย Ittichai_chupol อ 25 ก.ย. 2018 9:38 am บอร์ด M070 - อิทธิชัย ชูผล
0
1
อ 25 ก.ย. 2018 9:38 am โดย Ittichai_chupol
งานที่ประจำวันที่ 25 กันยายน 2561
โดย tatiya อ 25 ก.ย. 2018 9:28 am บอร์ด M065 - ตติยะ นาชัย
0
1
อ 25 ก.ย. 2018 9:28 am โดย tatiya
R - mod_jshopping_static โมดูลสถิติ
โดย pprn จ 24 ก.ย. 2018 6:43 pm บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
3
จ 24 ก.ย. 2018 6:45 pm โดย pprn
B - สร้างสินค้าไม่ได้ error @M045
โดย thatsawan จ 24 ก.ย. 2018 4:20 pm บอร์ด สิริกิตติรัตน์ - Tester
1
5
จ 24 ก.ย. 2018 6:49 pm โดย nuattawoot
index อบรม Odoo ครั้งที่ 31
โดย tatiya จ 24 ก.ย. 2018 3:52 pm บอร์ด M065 - ตติยะ นาชัย
0
2
จ 24 ก.ย. 2018 3:52 pm โดย tatiya
อยากทำ input type color โชว์ พอ summit ลง database ด้วยค่ะ
โดย supattra_su จ 24 ก.ย. 2018 3:50 pm บอร์ด Programming - PHP
0
10
จ 24 ก.ย. 2018 3:50 pm โดย supattra_su
generate_pagination() เรียกใช้ไม่ได้
โดย Ittichai_chupol จ 24 ก.ย. 2018 12:22 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
3
18
จ 24 ก.ย. 2018 3:05 pm โดย thatsawan
มีส่วนเสริมที่เปิดอ่านไฟล์ pdf ไหมครับ
โดย ek_EKEK จ 24 ก.ย. 2018 12:06 pm บอร์ด Joomla Development
2
14
อ 25 ก.ย. 2018 9:40 am โดย ek_EKEK
ตัวช่วยในการตรวจสอบ Domain Name และนำบทความจาก Master Site มาแสดงโดยใช้ Module Menu Json ใน Joomla
โดย Parichat จ 24 ก.ย. 2018 11:32 am บอร์ด PHP News
0
6
จ 24 ก.ย. 2018 11:32 am โดย Parichat
ไม่สามารถ import วิดีโออบรม ใน camtasia ได้ค่ะ
โดย muneela จ 24 ก.ย. 2018 11:19 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
12
จ 24 ก.ย. 2018 11:19 am โดย muneela
คำถามลูกค้าที่มาอบรม Odoo ครั้งที่ 31
โดย tatiya จ 24 ก.ย. 2018 11:13 am บอร์ด M065 - ตติยะ นาชัย
0
4
จ 24 ก.ย. 2018 11:13 am โดย tatiya
B - อัพเดท จำนวน สินค้าไม่ได้
โดย thatsawan จ 24 ก.ย. 2018 10:44 am บอร์ด สิริกิตติรัตน์ - Tester
1
6
จ 24 ก.ย. 2018 6:59 pm โดย nuattawoot
งานประจำวันที่ 24 กันยายน 2561
โดย prakon จ 24 ก.ย. 2018 10:23 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
9
จ 24 ก.ย. 2018 3:43 pm โดย prakon
งานประจำวันที่ 24 กันยายน 2561
โดย tatiya จ 24 ก.ย. 2018 10:15 am บอร์ด M065 - ตติยะ นาชัย
1
9
จ 24 ก.ย. 2018 9:20 pm โดย tatiya
งานประจำวันที่ 24 กันยายน 2561
โดย tai14 จ 24 ก.ย. 2018 10:12 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
3
จ 24 ก.ย. 2018 6:46 pm โดย tai14
งานประจำวันที่ 24 กันยายน 2561
โดย pprn จ 24 ก.ย. 2018 10:12 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
19
จ 24 ก.ย. 2018 6:41 pm โดย pprn
งานประจำวันที่ 24 กันยายน 2561
โดย muneela จ 24 ก.ย. 2018 10:03 am บอร์ด M068 - มุนีลา หมัดบาซา
1
8
จ 24 ก.ย. 2018 7:18 pm โดย muneela
งานประจำวันที่ 24 กันยายน 2561
โดย Ittichai_chupol จ 24 ก.ย. 2018 9:55 am บอร์ด M070 - อิทธิชัย ชูผล
1
7
จ 24 ก.ย. 2018 6:58 pm โดย Ittichai_chupol
ติดตั้งJoomla ไม่ได้ค่ะ
โดย Anonymous อ 23 ก.ย. 2018 5:21 pm บอร์ด Joomla Development
1
12
อ 23 ก.ย. 2018 5:30 pm โดย mindphp
Q - ถามเรื่องการ UPDATE INSERT ข้อมูล sql server ครับ ว่าแบบ Function กับ แบบทั่วไป แบบไหนปลอดภัยกว่า
โดย nuattawoot อ 23 ก.ย. 2018 3:48 pm บอร์ด SQL - Database
0
21
อ 23 ก.ย. 2018 3:48 pm โดย nuattawoot