python基礎篇(文件操作)
阿新 • • 發佈:2018-06-12
str con 視頻 alt 而不是 mage 字符 hang 數據
Python基礎篇(文件操作)
一.初始文件操作
使用python來讀寫文件是非常簡單的操作. 我們使用open()函數來打開一個文件, 獲取到文件句柄. 然後通過文件句柄就可以進行各種各樣的操作了. 根據打開方式的不同能夠執行的操 作也會有相應的差異.
打開文件的方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默認使?的是r(只讀)模式
二.只讀操作(r,rb)
f = open("護士少婦嫩模.txt",mode="r", encoding="utf-8") 註意:encoding表示編碼集,根據文件對的實際保存編碼進行獲取數據,對於我們而言,更多的是UTF-8 content= f.read() print(content) f.close()
rb.讀取出來的數據是bytes類型, 在rb模式下. 不能選擇encoding字符集.
f = open("護士少婦嫩模.txt",mode="rb" ) rb作用:在讀取非文本文件的時候. 比如讀取MP3. 圖像. 視頻等信息的時候就需要用到rb.因為這種數據是沒辦法直接顯示出來的.
在後面我們文件上傳下載的時候還會用到. 還有. 我們看的直播. 實際上都是這種數據 content = f.read() print(content) f.close() 結果: b‘\xe6\xaf\x85\xe5\x93\xa5, \xe5\xa4\xaa\xe7\x99\xbd, wuse\n\xe5\x91\xb5\xe5\x91\xb5\n\xe6\x97\xa5\xe5\xa4\xa9‘
絕對路徑和相對路徑:
1.絕對路徑:從磁盤目錄開始一直到文件名
2.相對路徑:同一個文件夾下的文件,相當於當前這個程序的文件夾而言,如果在同一個文件夾中則相對路徑就是這個文件名.如果再上一個文件夾中.則要 ../
推家使用:相對路徑,因為在把程序拷貝給別人使用的時候,直接把項目拷貝走就能運行,但是如果用絕對路徑,,那還需要拷貝外部文件
讀取文件方法:
1.read() 將文件中的內容全部讀取出來.弊端,占內存比較大,如果文件大可能會導致內存崩潰
f = open("../def/哇擦.txt", mode="r", encoding="utf-8") content = f.read() print(content) 結果: 友誼地久天長, 愛和點, 可惜我是水瓶座 心中最愛
2. read(n) 讀取n個字符,需要註意:如果再次讀取那麽會從當前位置開始讀取,而不是重新開始,如果使用rb模式,則讀取出來是n個字節
f = open("../def/哇擦.txt", mode="r" encoding="utf-8") content = f.read(3) print(content) 結果: 友誼地 f = open("../def/哇擦.txt", mode="rb") content = f.read(3) print(content) 結果: b‘\xe5\x8f\x8b‘ f = open("../def/哇擦.txt", mode="r", encoding="utf-8") content = f.read(3) content2 = f.read(3) print(content) print(content2) 結果: 友誼地 久天長
3.readline()一次讀取一行數據,註意:readline結尾 註意每次讀取出來的數據都會有一個/n 所以呢我們需要用strip()方法去掉/n或者空格
f = open("../def/哇擦.txt", mode="r", encoding="utf-8") content = f.readline() content2 = f.readline() content3 = f.readline() content4 = f.readline() content5 = f.readline() content6 = f.readline() print(content) print(content2) print(content3) print(content4) print(content5) print(content6) 結果: 友誼地久天c hang, 愛可點, 可惜我是?瓶座 心中最愛
4.readlines()將每一行形成一個元素放到一個列表中將所有的內容讀取出來所以也是容易出現內存崩潰的問題.不推薦使用
f = open("../def/哇擦.txt", mode="r", encoding="utf-8") lst = f.readlines() print(lst) for line in lst: print(line.strip())
5.循環讀取,這種方式是最好的,每次讀取一行內容不會產生內存溢出的問題
python基礎篇(文件操作)