File Io

การรับ input ทาง keyboard (stdio) ทำผ่านฟังก์ชัน input()

    raw = input('please enter a number: ')
    # this will print: please enter a number: _
    # and wait for the input (at the blink _ char)
    # after key a number, press enter to continue

    print(int(raw)**2)
    # raw input will always be string
    # don't forget to parse it before use it
    # this will print your number**2

ง่ายๆ แค่นี้แหละครับ (สั้นจนเหลือเชื่อเนาะ?)


ส่วนการอ่านไฟล์ของ Python นั้น จะใช้ open() สร้าง file object ขึ้นมาก่อน

    f = open('memo.txt')
    # mode: read only
    g = open('transc.txt', 'a')
    # mode: append
    h = open('diary1111.txt', 'w')
    # mode: erase old and write new
    i = open('pic.bmp', 'rb')
    # open file in binary mode for read only

เมื่อเปิดไฟล์สำเร็จ ก็ต้องอ่านมัน

    # example file memo.txt:
    # hello!
    # this is hal.
    # how are you?

    f = open('memo.txt', 'r')

    f.read()
    # return all char in file
    # in this case: 'hello!\nthis is hal.\nhow are you?'
    f.seek(0)
    # go to the 0th char (begin) of file
    f.read(7)
    # read 7 char: 'hello!\n'
    f.readline()
    # read a line: 'this is hal.\n'

    f.seek(0)
    for line in f:
        print(line, end='')
    # print all char in file, convert \n to newline

    f.close()

ส่วนการเขียนไฟล์ก็ทำได้ง่ายๆ เช่นนี้ครับ

    f = open('answer.txt', 'w')
    f.write('deep thought says: 42')
    f.close()
    # don't forget to close file after use it!

หมายเหตุ ชาว Windows ไม่ต้องกังวลเรื่อง \n นะครับ Python จะจัดการมันให้เป็น \r\n โดยอัตโนมัติ


นอกจากนี้ เรายังสามารถใช้ with ในการเปิดไฟล์มาใช้แบบเร็วๆ ได้อีกด้วย

    with open('memo.txt') as f:
        for line in f:
            print(line, end='')
    # print every line in file memo.txt

ซึ่งมีข้อดีในกรณีที่ทราบ scope การอ่านไฟล์ที่แน่นอนครับ และยังไม่ต้องสั่ง close() อีกด้วย

Nattawut Phetmak

Jack of all Trades

blog comments powered by Disqus