iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
自我挑戰組

Python 學習整理系列 第 20

Day 20. Python 檔案

  • 分享至 

  • xImage
  •  

重點

  • 開啟以及關閉檔案
  • 讀取檔案
  • 寫入檔案

為什麼要學檔案處理

  • 我們可以用 input() 從鍵盤輸入
  • 我們可以用 print() 從螢幕輸入
  • 如果資料量龐大呢? 如果想儲存資料呢?
  • 可以利用檔案的輸入、輸出、儲存來處理

開啟檔案

用法:

f = open ( 檔名, mode = ‘模式’ )
  • 有兩個參數, 檔名, mode
  • 檔名要填入的是檔案路徑
  • 如果檔案跟你寫程式的地方在同一個地方,就可以打檔名就好
  • 開啟檔案後就能進行讀取或寫入

mode

  • ‘ r ’ 唯讀模式 : 讀取檔案資料,但不能做更動,如果檔案不存在,會產生 FileNotFoundError 的例外
  • ' w ’ 覆寫模式 : 進行檔案的寫入,會在開啟的位置直接覆蓋掉原本的檔案,如果檔案不存在,會新增一個檔案。
  • ‘ a ’ 續寫模式 : 要進行寫入時,會從原本的檔案最後繼續進行寫入。

關閉檔案

方法:

 f.close ( ) 
  • 開啟了檔案後,如果要結束檔案的操作,可以將檔案關閉
  • 每次用完檔案就關閉是一個好習慣 !

讀取檔案

用法:

f.read([size])
  • 參數 size 不一定要放,如果設定 size 值,電腦就會讀取指定的字節數量
  • 如果沒有設定的話,會讀取檔案中的所有內容

例1. 如果桌面有一個名為 book.txt 的文字檔,內容如下:
0123456789

f = open('book.txt', 'r')
words = f.read()
print(words)
# 0123456789
f.close()

讀取資料

用法:

 f.readline ( ) 
  • 讀取檔案中整行的資料,但一次只會讀取一行
  • 如果有 N 行資料,就要呼叫 f.readline ( ) N次

例2.如果桌面有一個名為 book.txt 的文字檔,內容如下:
0123456789
abcdefghijk

f = open('book.txt', 'r')
first_line = f.readline()
second_line = f.readline()
print(second_line, first_line, sep='\n')
# abcdefghijk
# 0123456789

f.close()

讀取檔案

用法:

 f.readlines ( )
  • 將檔案當中的資料逐行讀取進來,然後會將其回傳成為一個 list
  • 常常與 for 迴圈搭配使用

例3.如果桌面有一個名為 book.txt 的文字檔,內容如下:
0123456789
abcdefghijk

f = open('book.txt', 'r')
a = f.readlines()
print(a)
# ['0123456789\n', 'abcdefghijk']S
f.close()
f = open('book.txt', 'r')
for line in f.readlines():
    print(line)
f.close()
# 0123456789

# abcdefghijk

寫入檔案

用法:
f.write ( 內容 )

  • 括號內填入想要寫入的資料,型態為 string
f = open('book2.txt', 'w')
f.write('I love coding')
f.close

這時桌面會有 book.txt 檔案,裡面會有 ‘I love coding’
https://ithelp.ithome.com.tw/upload/images/20220923/20150083rrjXfgXg5o.png

用法:
f.writelines(seq)

  • seq 必須是一個序列,可以放入 list
f = open('book3.txt', 'w')
seq = ('I love coding\n', 'Happy coding!')
f.writelines(seq)
f.close

這時桌面會有 book3.txt 檔案,裡面會有 ‘I love coding, Happy coding!’
https://ithelp.ithome.com.tw/upload/images/20220923/20150083N4rrgTIwAO.png

用法:
print ( 資料 , file = f )

  • 如果 print 指定 file 這個參數,輸出的結果就會寫入指定的檔案
f = open('file4.txt', 'w')
books = ['人類大歷史', '人類大命運', '被討厭的勇氣', ]
print(books, file=f)

這時桌面會有 file4.txt 檔案,裡面會有 '人類大歷史', '人類大命運', '被討厭的勇氣'
https://ithelp.ithome.com.tw/upload/images/20220923/20150083TmOAzUqEHk.png


表格整理:

說明 程式指令
開啟檔案 open(檔名, mode='模式')
關閉檔案 f.close()
讀取檔案 f.read(size)
讀取檔案 f.readline()
讀取檔案 f.readlines()
寫入檔案 f.write(內容)
寫入檔案 f.writelines(seq)
寫入檔案 print(file = f)

參考資料

Yes


上一篇
Day 19. Python 例外處理
下一篇
Day21.Python 模組
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言