你还在为文件读写而烦恼?Python已经轻松帮你解决了(建议收藏)
不管是Java還是Python,都有相關文件讀寫操作!
很多小伙伴們都困擾于讀寫文件的各種模式(如閱讀、寫入、追加等),以及搞不清open、read、readline、readlines、write等方法的使用。
寫這篇文章就是要告訴伙伴們Python文件讀寫的方式!
學習python中有什么不懂的地方,小編這里推薦加小編的python學習群:895,817, 687
有任何不懂的都可以在里面交流,還有很好的視頻教程pdf學習資料,大家一起學習交流!
open函數
如果你想用python讀取文件(如txt、csv等),第一步要用open函數打開文件。open()是python的內置函數,它會返回一個文件對象,這個文件對象擁有read、readline、write、close等方法。
open函數有兩個參數:
- open(‘file’,‘mode’)
參數解釋
- file:需要打開的文件路徑
- mode(可選):打開文件的模式,如只讀、追加、寫入等
mode常用的模式:
- r:表示文件只能讀取
- w:表示文件只能寫入
- a:表示打開文件,在原有內容的基礎上追加內容,在末尾寫入
- w+:表示可以對文件進行讀寫雙重操作
mode參數可以省略不填,默認為r模式mode參數還可以指定以什么樣的編碼方式讀寫文本,默認情況下open是以文本形式打開文件的,比如上面的四種mode模式。
當你需要以字節(二進制)形式讀寫文件時,只需要在mode參數中追加’b’即可:
- rb:以二進制格式打開一個文件,用于只讀
- wb:以二進制格式打開一個文件,用于只寫
- ab:以二進制格式打開一個文件,用于追加
- wb+:以二進制格式打開一個文件,用于讀寫
當你在默認模式下讀取文本文件時(二進制文件不可以),文件中的換行符會轉換為’\n’形式。
相反,在默認模式下寫入文件時,文本中的’\n’會轉換為換行符。
也就是說,你讀取的txt文本,其中換行符會以’\n’形式出現,寫入txt文本時,文本中的’\n’會變成換行指令。
with 關鍵字
在打開文件時,很多人通常直接用open(‘file’),這樣并不酷。最好使用 with 關鍵字。優點是當子句體結束后文件會正確關閉,即使在某個時刻引發了異常。
with open(‘workfile’) as f:
… read_data = f.read()
f.closed
True
close()方法
打開文件并處理完畢后,需要關閉文件,這里用到close方法。
f.close() 用來關閉文件并立即釋放它使用的所有系統資源。如果你沒有顯式地關閉文件,Python的垃圾回收器最終將銷毀該對象并為你關閉打開的文件,但這個文件可能會保持打開狀態一段時間。
應該要養成使用close()的習慣。
使用方法很簡單:
f = open(file) # 打開文件
f.close() # 關閉文件
read()方法
當使用open函數打開文件后,就可以使用該文件對象的各種方法了,read就是其中一種。
read()會讀取一些數據并將其作為字符串(在文本模式下)或字節對象(在二進制模式下)返回。
read方法有一個參數:
f.read(size) # f為文件對象
參數size(可選)為數字,表示從已打開文件中讀取的字節計數,默認情況下為讀取全部。假設有一個文件sample1.txt,內容如下:
This is python big data analysis!現在讀取該文件:
with open('sample1.txt') as f: content = f.read()print(content)f.close()輸出:
readline()方法
readline方法從文件中讀取整行,包括換行符’\n’。
換行符(\n)留在字符串的末尾,如果文件不以換行符結尾,則在文件的最后一行省略,這使得返回值明確無誤。
如果 f.readline() 返回一個空的字符串,則表示已經到達了文件末尾,而空行使用 ‘\n’ 表示,該字符串只包含一個換行符。
f.readline()有一個參數:
f.readline(size)
參數size表示從文件讀取的字節數。
假設有一個文件sample2.txt,共三行,內容如下:
hello,my friends! This is python big data analysis, let's study.我要用readline函數讀取該文件:
with open('a.txt') as f:print(f.readline())print(f.readline(5))f.close()輸出:
readline方法會記住上一個readline函數讀取的位置,接著讀取下一行。
所以當你需要遍歷文件每一行的時候,不妨使用readline方法吧!
readlines方法
readlines方法和readline方法長得像,但功能不一樣,前面說過readline方法只讀取一行,readlines方法則是讀取所有行,返回的是所有行組成的列表。
readlines方法沒有參數,使用更加簡單。依舊以sample2.txt為例:
with open('a.txt') as f:print(f.readlines())f.close()輸出:
write方法
write方法顧名思義,就是將字符串寫入到文件里。
它只有一個參數:
f.write([str]) # f為文件對象
參數[str]代表要寫入的字符串
使用起來也很簡單,比如將下面字符串(注意里面的轉行符’\n’)
'hello,my friends!\nthis is python big data analysis'寫入到文件sample3.txt里。
with open('sample3.txt','w') as f:f.write('hello,my friends!\nthis is python big data analysis')f.close()輸出:
結語
本文講解了python文本讀寫open、close、read、readline、readlines、write函數方法的使用,你會用了嗎?
總結
以上是生活随笔為你收集整理的你还在为文件读写而烦恼?Python已经轻松帮你解决了(建议收藏)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python果然不得了,数独都能轻松解决
- 下一篇: 自从Python数据可视化出了这个模块后