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

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 10 กันยายน 2562
โดย EyePornnipa อ 10 ก.ย. 2019 10:17 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
3
43
อ 10 ก.ย. 2019 7:22 pm โดย EyePornnipa
งานประจำวันที่ 10 กันยายน 2562
โดย jirawoot อ 10 ก.ย. 2019 10:11 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
4
อ 10 ก.ย. 2019 7:33 pm โดย jirawoot
งานประจำวันที่ 10 กันยายน 2562
โดย jamepiyawat อ 10 ก.ย. 2019 10:10 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
1
17
อ 10 ก.ย. 2019 7:36 pm โดย jamepiyawat
งานประจำวันที่ 10 กันยายน 2562
โดย chatee supasand อ 10 ก.ย. 2019 9:33 am บอร์ด MT33 - นายชาตรี สุภาแสน
2
8
อ 10 ก.ย. 2019 7:21 pm โดย chatee supasand
ฟีเจอร์ Ambient Mode ฟีเจอร์ใหม่ของ Google Assistant ที่จะเปลี่ยนมือถือ-แท็บเล็ตให้เป็นหน้าจออัจฉริยะ
โดย jamepiyawat จ 09 ก.ย. 2019 6:48 pm บอร์ด Share Knowledge
0
34
จ 09 ก.ย. 2019 6:48 pm โดย jamepiyawat
อยากทราบวิธีการ เคลียแคช bbocode
โดย Ittichai_chupol จ 09 ก.ย. 2019 5:54 pm บอร์ด Programming - PHP
4
52
จ 09 ก.ย. 2019 6:10 pm โดย Ittichai_chupol
อากทราบวิธีการเปิด Activate ผู้ใช้งาน ใน phpbb
โดย Ittichai_chupol จ 09 ก.ย. 2019 5:42 pm บอร์ด Programming - PHP
0
26
จ 09 ก.ย. 2019 5:42 pm โดย Ittichai_chupol
Q - สอบถามเกี่ยวกับตัว Import ข้อมูล Smart Electric Meter [2019-06][004]
โดย aninthana จ 09 ก.ย. 2019 4:29 pm บอร์ด IIEC - Feedback Service System - Tester
5
13
จ 09 ก.ย. 2019 7:21 pm โดย tsukasaz
B - เมนู Database Summary > Characteristics of Household & Housing การแสดงผล error ค่ะ [2019-09][002]
โดย aninthana จ 09 ก.ย. 2019 4:23 pm บอร์ด IIEC - Feedback Service System - Tester
1
6
จ 09 ก.ย. 2019 6:13 pm โดย tsukasaz
B - เมนู Database Summary > Electricity Consumption ข้อมูลการแสดงผล ยังไม่ถูกต้อง [2019-09][001]
โดย aninthana จ 09 ก.ย. 2019 4:07 pm บอร์ด IIEC - Feedback Service System - Tester
10
37
พฤ 12 ก.ย. 2019 3:48 pm โดย aninthana
ต้องการปิดส่วนรายละเอียดของเนื้อหา บนเว็บไซต์ต้องทำยังไงค่ะ
โดย thatsawan จ 09 ก.ย. 2019 4:05 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
2
28
จ 09 ก.ย. 2019 4:13 pm โดย mindphp
งานประจำวันที่ 9 สิงหาคม 2562
โดย jamepiyawat จ 09 ก.ย. 2019 10:13 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
1
12
จ 09 ก.ย. 2019 7:40 pm โดย jamepiyawat
งานประจำวันที่ 9 กันยายน 2562
โดย jirawoot จ 09 ก.ย. 2019 10:09 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
4
จ 09 ก.ย. 2019 7:54 pm โดย jirawoot
งานประจำวันที่ 9 กันยายน 2562
โดย chatee supasand จ 09 ก.ย. 2019 9:33 am บอร์ด MT33 - นายชาตรี สุภาแสน
2
3
จ 09 ก.ย. 2019 7:41 pm โดย chatee supasand
งานประจำวันที่ 9 กันยายน 2562
โดย aninthana จ 09 ก.ย. 2019 9:23 am บอร์ด M092 - อนินธนา บุญยัง
1
22
จ 09 ก.ย. 2019 6:00 pm โดย aninthana
insert ข้อมูลลงดาต้าเบสไม่ได้
โดย Anonymous อ 08 ก.ย. 2019 1:43 pm บอร์ด Programming - PHP
0
53
อ 08 ก.ย. 2019 1:43 pm โดย บุคคลทั่วไป
R - mdsoft_iframe_pages โมดูลสำหรับแทรกหน้าเว็บลงใน odoo
โดย mindphp ส 07 ก.ย. 2019 9:18 pm บอร์ด Thai-otsuka - Developer
0
4
ส 07 ก.ย. 2019 9:18 pm โดย mindphp
ทำความรู้จักกับ SDL Trados Studio
โดย MiyukiEamrucksa ส 07 ก.ย. 2019 5:47 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
45
ส 07 ก.ย. 2019 5:47 pm โดย MiyukiEamrucksa
อัดวีดีโอ Tool: Domain checker English
โดย MiyukiEamrucksa ส 07 ก.ย. 2019 5:40 pm บอร์ด M093 - มิยูกิ เอี่ยมรักษา
0
16
ส 07 ก.ย. 2019 5:40 pm โดย MiyukiEamrucksa
อยากทราบวิธีเรียกใช้ค่าของ Array ครับ
โดย Patipat ส 07 ก.ย. 2019 5:25 pm บอร์ด Joomla Development
1
35
ส 07 ก.ย. 2019 5:33 pm โดย thatsawan