在 Python 中,若是想要操做文件,首先須要建立或者打開指定的文件,並建立一個文件對象,而這些工做能夠經過內置的 open() 函數實現。函數
open() 函數用於建立或打開指定文件,該函數的經常使用語法格式以下:編碼
file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])
此格式中,用 [] 括起來的部分爲可選參數,便可以使用也能夠省略。其中,各個參數所表明的含義以下:spa
file_name:要建立或打開文件的文件名稱,該名稱要用引號(單引號或雙引號均可以)括起來。須要注意的是,若是要打開的文件和當前執行的代碼文件位於同一目錄,則直接寫文件名便可;不然,此參數須要指定打開文件所在的完整路徑。指針
mode:可選參數,用於指定文件的打開模式。可選的打開模式(以下方表格)所示。若是不寫,則默認以只讀(r)模式打開文件。orm
buffering:可選參數,用於指定對文件作讀寫操做時,是否使用緩衝區(本節後續會詳細介紹)。對象
encoding:手動設定打開文件時所使用的編碼格式,不一樣平臺的 ecoding 參數值也不一樣,以 Windows 爲例,其默認爲 cp936(實際上就是 GBK 編碼)。圖片
open() 函數支持的文件打開模式以下:utf-8
模式 | 描述 |
r | 只讀模式打開文件,讀文件內容的指針會放在文件的開頭。 |
rb | 以二進制格式、採用只讀模式打開文件,讀文件內容的指針位於文件的開頭,通常用於非文本文件,如圖片文件、音頻文件等。 |
r+ | 打開文件後,既能夠從頭讀取文件內容,也能夠從開頭向文件中寫入新的內容,寫入的新內容會覆蓋文件中等長度的原有內容。 |
rb+ | 以二進制格式、採用讀寫模式打開文件,讀寫文件的指針會放在文件的開頭,一般針對非文本文件(如音頻文件)。 |
w | 以只寫模式打開文件,若該文件存在,打開時會清空文件中原有的內容。 |
wb | 以二進制格式、只寫模式打開文件,通常用於非文本文件(如音頻文件) |
w+ | 打開文件後,會對原有內容進行清空,並對該文件有讀寫權限。 |
wb+ | 以二進制格式、讀寫模式打開文件,通常用於非文本文件 |
a | 以追加模式打開一個文件,對文件只有寫入權限,若是文件已經存在,文件指針將放在文件的末尾(即新寫入內容會位於已有內容以後);反之,則會建立新文件。 |
ab | 以二進制格式打開文件,並採用追加模式,對文件只有寫權限。若是該文件已存在,文件指針位於文件末尾(新寫入文件會位於已有內容以後);反之,則建立新文件。 |
a+ | 以讀寫模式打開文件;若是文件存在,文件指針放在文件的末尾(新寫入文件會位於已有內容以後);反之,則建立新文件。 |
ab+ | 以二進制模式打開文件,並採用追加模式,對文件具備讀寫權限,若是文件存在,則文件指針位於文件的末尾(新寫入文件會位於已有內容以後);反之,則建立新文件。 |
1、建立文件ci
file = open('hello.txt','w')
運行結果會在當前執行腳本的目錄下會建立一個hello.txt文件。博客
2、寫入文件
file = open('hello.txt','w') print(file.write('碼農博客\n')) # .write()方法是往文件裏寫入內容 file.close() # .close()方法是將文件關閉
運行結果:
5
運行結果的5是告訴咱們一共寫入了5個字符。可是你打開文件看會出現亂碼,這要怎麼解決呢?
file = open('hello.txt','w',encoding='utf-8') # 將編碼設定成utf-8編碼 print(file.write('碼農博客\n')) file.close()
這個時候你再打開文件,顯示就是正常的。
3、讀取文件
讀取文件中的所有內容
file = open('hello.txt','r',encoding='utf8') print(file.read()) # read方法是讀取文件中所有內容
運行結果:
碼農博客
逐行讀取文件的內容
file = open('hello.txt','r',encoding='utf8') print(file.readline()) # readline方法是逐行讀取文件中的內容
運行結果:
碼農博客
若是要打印第二行內容的話,那就再寫一次「print(file.readline())」。
讀取文件中所有內容並返回成列表
file = open('hello.txt','r',encoding='utf8') print(file.readlines()) # readlines方法是讀取文件中全部內容,返回一個列表,並將每行內容當成列表中的一個元素
運行結果:
['碼農博客\n']
4、with上下文
若是怕文件打開後忘記關閉,可使用with上下文,再執行完with下的代碼以後,文件會自動關閉。
with open('hello.txt','r',encoding='utf8') as f: # as是給文件臨時取名叫f print(f.readlines())
運行結果:
['碼農博客\n']本文轉自:https://www.myblou.com/archives/1446