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

ไพทอนกับการอ่านเขียนไฟล์ เป็นเรื่องง่ายมากๆ โดยไพทอน เตรียมฟังก์ชั่นไว้สำหรับจัดการกับไฟล์ อยู่แล้วโดยเราไม่ต้อง 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 ดูได้

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - กดปุ่ม wish-list แล้วขึ้น 404 Page not found
โดย jamepiyawat อ 13 ส.ค. 2019 4:19 pm บอร์ด Joomla Dev
3
11
อ 13 ส.ค. 2019 5:06 pm โดย tsukasaz
Sony จดสิทธิบัตร คอนแทคเลนส์ ถ่ายรูปและบันทึกวีดีโอ เพียงแค่กระพริบตา
โดย chatee supasand อ 13 ส.ค. 2019 3:13 pm บอร์ด MindPHP News
2
46
อ 13 ส.ค. 2019 4:21 pm โดย chatee supasand
Windows 10 ปรับดีไซน์จอ Network Status ใหม่ รวมทุกการเชื่อมต่อ ในแพตช์ Build 18956
โดย chatee supasand อ 13 ส.ค. 2019 11:36 am บอร์ด Microsoft Office Knowledge & line & Etc
0
41
อ 13 ส.ค. 2019 11:36 am โดย chatee supasand
Q - เรียกใช้ Class CSS ซ้ำกันครับ
โดย Patipat อ 13 ส.ค. 2019 11:25 am บอร์ด HTML CSS
2
46
อ 13 ส.ค. 2019 11:32 am โดย Patipat
B - กด Print รายงานภาษีไม่ได้
โดย EyePornnipa อ 13 ส.ค. 2019 11:19 am บอร์ด M.D.Soft Co.,Ltd. - Tester
0
3
อ 13 ส.ค. 2019 11:19 am โดย EyePornnipa
จะปรับขอบของปุ่ม Switch Language อย่าไรให้พอดีกับ Layout ของ Template Helix ครับ
โดย Patipat อ 13 ส.ค. 2019 10:42 am บอร์ด Joomla Development
1
40
อ 13 ส.ค. 2019 10:44 am โดย tsukasaz
งานประจำวันที่ 13 กรกฎาคม 2562
โดย jamepiyawat อ 13 ส.ค. 2019 10:15 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
3
12
อ 13 ส.ค. 2019 11:14 pm โดย thatsawan
งานประจำวันที่ 13 สิงหาคม 2562
โดย Patipat อ 13 ส.ค. 2019 10:07 am บอร์ด M088 - ปฏิภัทร สารธรรม
3
14
อ 13 ส.ค. 2019 11:16 pm โดย thatsawan
Re: งานประจำวันที่ 13 สิงหาคม 2562
โดย jirawoot อ 13 ส.ค. 2019 10:02 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
3
15
อ 13 ส.ค. 2019 11:20 pm โดย thatsawan
งานประจำวันที่ 13 สิงหาคม 2562
โดย EyePornnipa อ 13 ส.ค. 2019 9:58 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
5
25
อ 13 ส.ค. 2019 11:00 pm โดย thatsawan
งานประจำวันที่ 13 สิงหาคม 2562
โดย Auttasti อ 13 ส.ค. 2019 9:57 am บอร์ด MT34 - นายอัฐสิทธิ์ รอดถนอม
1
8
อ 13 ส.ค. 2019 7:18 pm โดย Auttasti
งานประจำวันที่ 13 สิงหาคม 2562
โดย chatee supasand อ 13 ส.ค. 2019 9:55 am บอร์ด MT33 - นายชาตรี สุภาแสน
3
16
อ 13 ส.ค. 2019 11:19 pm โดย thatsawan
รอ 10 วิแล้วไม่ขึ้นดาวห์โหลดไฟล์ Joomshopping Thai Edition
โดย Anonymous จ 12 ส.ค. 2019 10:38 pm บอร์ด Joomla Development
4
83
พ 14 ส.ค. 2019 3:28 pm โดย บุคคลทั่วไป
ปรับแต่ง เทมเพลต
โดย alonglot จ 12 ส.ค. 2019 1:50 pm บอร์ด Joomla Development
1
112
อ 13 ส.ค. 2019 10:16 am โดย tsukasaz
จดโดเมนภาษาไทย มีข้อเสียมั้ย
โดย Anonymous อ 11 ส.ค. 2019 10:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
136
จ 12 ส.ค. 2019 3:40 am โดย mindphp
สามารถเห็นภาพสัตว์แบบ AR ได้ใน google Search
โดย jamepiyawat ส 10 ส.ค. 2019 6:33 pm บอร์ด Share Knowledge
0
129
ส 10 ส.ค. 2019 6:33 pm โดย jamepiyawat
VDO - สคลิปการอัดวีดีโอ โปรแกรมตัดต่อวีดีโอ mdsoft_moviepy_python
โดย jirawoot ส 10 ส.ค. 2019 5:55 pm บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
2
16
อ 13 ส.ค. 2019 6:03 pm โดย jirawoot
class table-responsive สามารถเลือนดูตารางที่มีข้อมูลยาว ๆ ในจอเล็ก
โดย jamepiyawat ส 10 ส.ค. 2019 5:07 pm บอร์ด Booststap Knowledge
0
92
ส 10 ส.ค. 2019 5:07 pm โดย jamepiyawat
ทำอย่างไรถึงจะให้ตารางแสดงข้อมูลเลือนไปทางขาวได้เมือเปิดใช่ในโทรศัพท์ครับ
โดย jamepiyawat ส 10 ส.ค. 2019 3:44 pm บอร์ด HTML CSS
2
140
ส 10 ส.ค. 2019 4:17 pm โดย jamepiyawat
Q - ดึงข้อมูลสินค้าเก่ามาแสดงแล้วขึ้น 0 บาทครับ
โดย jamepiyawat ส 10 ส.ค. 2019 2:43 pm บอร์ด Joomla Dev
3
5
ส 10 ส.ค. 2019 3:50 pm โดย jamepiyawat