文件是操做系統管理和存儲數據的一種方式。shell
Python內置了 open() 函數來打開文件,並建立一個文件對象。函數
1、打開文件:open 函數編碼
一、open 函數基本格式:spa
myfile = open(filename,[mode]) 操作系統
意思是: myfile 爲引用文件對象的變量;filename 爲文件名,能夠是文件的絕對路徑;code
mode 爲文件讀寫模式。對象
二、mode讀寫模式包含: w a r b + 排序
w:寫文件,建立新文件。若文件已存在,則覆蓋源文件。內存
a : 以追加的方式寫文件。若文件已存在,寫入的數據默認添加到文件尾;文件不存在,則建立新文件。utf-8
r : 讀文件。當mode爲空時,默認爲讀文件。
+ : 用在模式末尾,表示文件打開後能夠同時進行讀、寫操做。例如 w+ r+
b : 須要與 a b r 組合使用,用於讀寫二進制文件。
三、以不一樣mode打開文件示例
2、關閉文件:close()
close() 函數基本格式: myfile.close()
3、建立文件、寫入文件、讀取文件。其中 EOF 表示文件的結束符。
一、建立文件並寫入內容
運行結果:
二、讀取文件內容
運行結果:
4、文件的讀寫方法
一、文件讀寫方法:
f.read() 把整個文件內容讀做一個字符串(最經常使用)
f.readline() 把一行內容讀入一個字符串
f.readlines() 把整個文件內容讀入一個字符串列表,每一行做爲一個字符串。
f.write 將字符串寫入文件
f.writelines() 將列表寫入文件
二、文件屬性
f.name 文件名
f.closed 文件是否關閉(返回值爲布爾型)
f.mode 文件讀取模式
f.encoding 文件編碼格式(通常都是 utf-8 )建議在讀寫以前定義編碼格式,避免亂碼。
示例:
結果:
三、with 的用法
通常在打開文件以後都須要關閉;可是常常會忘記關閉,由此而產生 with
示例:
5、Python 2 亂碼問題 (Python 2 版本)
一、編碼
支持中文的編碼,經常使用的國際編碼爲: utf-8 gbk gbk2312
decode 編碼
encode 解碼
二、亂碼示例 及 解決方案 (運行環境:pycharm )
在Python 2 中若是刪除掉圖中編碼信息,則運行時會報錯。提示編碼出了問題,Python 2 默認將代碼內容當作 ASCII 編碼處理,但 ASCII 編碼不存在中文,所以報錯。
解決方法就是:在代碼文件前段申明編碼格式。
三、控制檯亂碼 及 解決方案(運行環境:pycharm 與 控制檯即:Windows 運行cmd)
①、pycharm定義爲 utf-8 編碼,執行結果正常,但控制檯運行亂碼
解決方法: 將 pycharm 的編碼格式改成 gbk 編碼
②、寫程序的時候講內容定義爲 Unicode編碼格式, 此時不管在pycharm 中運行仍是控制檯都能正常顯示中文,以下圖。(即:以Unicode對象的形式存儲在內存中,若是使用type查看,存儲形式是 Unicode。Python在向控制檯輸出Unicode對象的時候會根據輸出環境的編碼進行轉換。)
6、文件操做實例
題目:將Linux系統下的 /usr/local/src/passwd 文件內容,按照第3個列大小進行排序
解答:shell 可使用 awk 進行操做。