Python3中打开文件的方式(With open)
Python3中打開文件的方式(With open)
- 一、了解文件基本概念
- 1.什么是文件
- 2.兩種重要的文件類型
- 3.文本文件與二進制文件的優缺點
- 4.python3中的字符串類型
- 5.文件的緩沖機制
- 文件緩沖區
- 緩沖機制的好處
- 二、文件基本操作
- 1.訪問文件操作過程
- 2.打開文件(open)
- 3.最簡單的文件操作
- 4.打開文件-文件編碼
- 5.為什么需要編碼
- 6.常見編碼
- 7.判斷文件編碼-chardet模塊
- 8.打開文件-mode
- 快 問 快 答
- 9.關閉文件
- 關閉文件-用with語句打開
- 三.文件的讀寫操作
- 1.讀取文件內容
- 小 練 習
- 2.寫文件
- 小 案 例
- 3.文件對象其他方法
- 四. 小練習
- 1.ip存儲與讀取文件統計ip頻率 (京東二面題)
- 2.已知一個文件 test.txt
- 3.詞頻統計
- 總結
提示:以下是本篇文章正文內容,下面案例可供參考
一、了解文件基本概念
1.什么是文件
文件是存放在外部介質 (如硬盤、U盤) 上的一組完整信息的集合。這些信息可為各種文字、 圖形、圖像、電影、音樂,甚至包括病毒程序等。
2.兩種重要的文件類型
? 文本文件(Text File)。文本文件是可直接閱讀的,使用記事本打開即可看到文件的內 容。
? 二進制文件(Binary File)。這類文件將數據按照它的進制編碼的形式存儲。如BMP。由 于這類文件內容是二進制編碼,使用記事本打開是顯然是亂碼,BMP可用圖片查看器解 碼。
3.文本文件與二進制文件的優缺點
無論什么類型的文件,在硬盤/內存=> 二進制
- 文本方式讀:內存->看(轉換)
- 二進制方式讀: 內存-> 看到一致
4.python3中的字符串類型
? bytes 轉換:bytes->str : decode(‘utf8’)
? str 轉換: str->bytes: encode(‘utf8’)
注意:encode編碼時可指定任何合適的編碼方式,但decode解碼時,一定需要對應的編碼方式
5.文件的緩沖機制
讀操作:不會直接對磁盤進行讀取,而是先打開數據流,將磁盤上的文件信息拷貝到緩沖區內,然后 程序再從緩沖區中讀取所需數據
寫操作:不會馬上寫入磁盤中,而是先寫入緩沖區,只有在緩沖區已滿或“關閉文件”時,才會將數 據寫入磁盤
文件緩沖區
計算機系統為要處理的文件在內存中單獨開辟出來的一個存儲區間,在讀寫該文件時,做為數據交換的 臨時“存儲中轉站”。
緩沖機制的好處
能夠有效地減少對外部設備的頻繁訪問,減少內存與外設間的數據交換,填補內、外設備的速度差異, 提高數據讀寫的效率。
二、文件基本操作
1.訪問文件操作過程
? 打開文件
? 讀取文件 將信息讀到內存
? 寫入文件
? 關閉文件 保存文件并釋放內存空間
2.打開文件(open)
file : 要打開的文件名( str )
? mode: 打開文件的方式( str ) => text, bytes
? encoding: 文件編碼方式(str)
? errors: 當發生編碼錯誤時的處理方式(str) ‘ignore’或’strict’(默認) ? buffering: 緩存方式 ( int)
3.最簡單的文件操作
打開一個文件”example.txt“
打印文件內容
4.打開文件-文件編碼
? encoding: 文件的編碼方式( str )
? encoding的默認值:None, 不同的平臺打開的方式不一樣
? encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent。
Encoding是用于解碼或編碼文件的編碼名稱。 這應該只在文本模式下使用。 默認編碼是平臺相關的
5.為什么需要編碼
對于計算機來說,所有信息都是由0和1組成的二進制。
人類無法僅用二進制就來完成計算機的各種操作
字符編碼解決人與計算機之間的溝通問題
6.常見編碼
文件編碼案例
(1)制作2個文件
? “gbk.txt” 保存為GBK編碼
? “utf8.txt” 保存為UTF-8編碼
(2)測試打開文件
? 用默認方式
? 用正確的編碼方式打開
? 顯示地指定編碼方式
7.判斷文件編碼-chardet模塊
? 安裝:pip install chardet
? 檢測
8.打開文件-mode
(rwxa任選其一, tb任選其一,+是可選項)
快 問 快 答
以下是需要什么模式打開
? 讀取本地圖片
? 將網絡上的圖片保存到本地
? 接收用戶輸入,將內容保存到文件末尾
? 接收用戶輸入,將內容保存到文件,如果文件已存在,則覆蓋原內容
9.關閉文件
? 為什么要關閉文件
? 文件忘記關閉
? 遇到異常怎么辦
關閉文件-用with語句打開
三.文件的讀寫操作
1.讀取文件內容
小 練 習
準備一個example.txt文件, 里面隨便寫入些內容(如一首歌詞)
讀前5行。
讀全文
讀取最后12字節 => str格式
讀取最后4個漢字 => str格式
2.寫文件
? 為什么不實時寫入磁盤 硬盤是慢設備,頻率讀寫會增大磁盤壓力,產生瓶頸
? 什么時候會寫入磁盤
? f.flush()
? f.close()
? buffer設置(默認:io.DEFAULT_BUFFER_SIZE )
? 0 => 實時寫入 (binary mode)
? 1 => 行緩存 ( text mode) => \n
? 其他數字n => 緩沖區大小n : 2*4096
 強行寫入
f.close() 關閉文件
buffer參數默認值
buffer參數不緩存
buffer參數行緩存
buffer參數設置指定大小
3.文件對象其他方法
四. 小練習
1.ip存儲與讀取文件統計ip頻率 (京東二面題)
生成一個大文件ips.txt,要求120000行,每行隨即為172.25.254.0/24段的ip;
?讀取ips.txt文件統計這個文件中ip出現頻率前10的ip;
訪客:編寫一個程序,提示用戶輸入其名字;用戶作出響應后,將其名字寫 入到文件 guest.txt 中。
生成100個MAC地址并寫入文件中,MAC地址前6位(16進制)為01-AF-3B
2.已知一個文件 test.txt
內容如下:
2002年的第一場雪,比以往時候來的更晚一些
停靠在八樓的二路汽車,帶走了最后一片飄落的黃葉
2002年的第一場雪,是留在烏魯木齊難舍的情結
3.詞頻統計
? 已經有一個瓦爾登湖的文本,“Walden.txt” ? 統計這篇文章的詞頻(每個詞出現的次數)
? 不統計標點符號
? The和the被統計成同一個詞(不區分大小寫)
? 輸出格式:{ ‘the’: 10, ‘is’: 45…}
總結
1.文件操作在日常的工作場景中十分常見,文件的讀取和寫入是正常操作,一定要掌握哦。
2.對于第二章的一些命令和操作要重點掌握,這是個孰能生巧的過程,一定要多多練習哈
總結
以上是生活随笔為你收集整理的Python3中打开文件的方式(With open)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电化学传感器使用-电子学角度分析
- 下一篇: 让程序员“#*...%#{4*”的瞬间: