文章插圖

文章插圖
一、什么是文件?
文件就是把一些存儲存放起來,可以讓程序下一次執行的時候直接使用,而不必重新制作一份,省時省力 。
二、文件如何的打開?
Python內置了一個open()方法,可以對文件進行讀寫操作 。
使用open()方法操作文件就像把大象塞進冰箱一樣,可以分三步走,一是打開文件,二是操作文件,三是關閉文件 。
open語法
open()方法的返回值是一個file對象,可以將它賦值給一個變量(文件句柄) 。
其基本語法格式為:
f = open(filename, mode)注:Python中,所有具有read和write方法的對象,都可以歸類為file類型 。而所有的file類型對象都可以使用open方法打開,close方法結束 。
filename:一個包含了你要訪問的文件名稱的字符串值,通常是一個文件路徑 。
mode:打開文件的模式,有很多種,默認是只讀方式r 。
例:
# 打開一個文件f = open("1.txt", "w")f.write("Python 是一種非常好的語言 。nPython!!n")# 關閉打開的文件f.close()運行結果:在1.txt文件中寫入Python 是一種非常好的語言 。Python 。
通過一個表格,了解Python常用的讀寫模式
例如,讀取GBK編碼的文件:
>>> f = open('gbk.txt', 'r', encoding='gbk')>>> f.read()'GBK' #編碼遇到有些編碼不規范的文件,可能會拋出UnicodeDecodeError異常,這表示在文件中可能夾雜了一些非法編碼的字符 。遇到這種情況,可以提供errors參數,表示如果遇到編碼錯誤后如何處理 。f = open('gbk.txt', 'r', encoding='gbk', errors='ignore')三、 文件對象操作用open方法打開一個文件,將返回一個文件對象 。這個對象內置了很多操作方法 。
下面打開了一個f文件對象(1.txt) 。對文件對象進行相關的操作 。
1. f.read(size)
讀取一定大小的數據, 然后作為字符串或字節對象返回 。size是一個可選的數字類型的參數,用于指定讀取的數據量 。當size被忽略了或者為負值,那么該文件的所有內容都將被讀取并且返回 。
f = open("1.txt", "r")str = f.read()print(str)f.close()如果文件體積較大,請不要使用read()方法一次性讀入內存,而是read(312)這種一點一點的讀 。2. f.readline()
從文件中讀取一行n內容 。換行符為’n’ 。如果返回一個空字符串,說明已經已經讀取到最后一行 。這種方法,通常是讀一行,處理一行的情況下使用 。
f = open("1.txt", "r")str = f.readline()print(str)f.close()3. f.readlines()將文件中所有的行,一行一行全部讀入一個列表內,按順序一個一個作為列表的元素,并返回這個列表 。readlines方法會一次性將文件全部讀入內存,所以也存在一定的弊端 。但是它有個好處,每行都保存在列表里,可隨意存取 。
f = open("1.txt", "r")a = f.readlines()print(a)f.close()4. 遍歷文件實際情況中,我們會將文件對象作為一個迭代器來使用 。
# 打開一個文件f = open("1.txt", "r")for line in f:print(line, end='')# 關閉打開的文件f.close()這個方法很簡單, 不需要將文件一次性讀出,但是同樣沒有提供一個很好的控制,與readline方法一樣只能前進,不能回退 。幾種不同的讀取和遍歷文件的方法比較:
如果文件很小,read()一次性讀取最方便;
如果不能確定文件大小,反復調用read(size)比較保險;
如果是配置文件,調用readlines()最方便 。普通情況,使用for循環更好,速度更快 。
5. f.write()
使用write()可以完成向文件寫入數據 。
# 打開一個文件f = open("/tmp/foo.txt", "w")f.write("Python 是一種非常好的語言 。n我喜歡Python!!n")# 關閉打開的文件f.close()6. f.tell()返回文件讀寫指針當前所處的位置,它是從文件開頭開始算起的字節數 。一定要注意了,是字節數,不是字符數 。
7. f.seek()
如果要改變位置指針的位置, 可以使用f.seek(offset, from_what)方法 。seek()經常和tell()方法配合使用 。
from_what的值,如果是0表示從文件開頭計算,如果是1表示從文件讀寫指針的當前位置開始計算,2表示從文件的結尾開始計算,默認為0,例如:
offset:表示偏移量 。
seek(x,0) :從起始位置即文件首行首字符開始移動 x 個字符 。seek(x,1) :表示從當前位置往后移動x個字符 。seek(-x,2):表示從文件的結尾往前移動x個字符 。
例:
f = open("1.txt", "rb+")f.write(b"1232312adsfalafds")print(f.tell())print(f.seek(5))print(f.read(1))print(f.seek(-3, 2))print(f.read(1))運行結果:關閉文件對象 。當處理完一個文件后,調用f.close()來關閉文件并釋放系統的資源 。文件關閉后,如果嘗試再次調用該文件對象,則會拋出異常 。忘記調用close()的后果是數據可能只寫了一部分到磁盤,剩下的丟失了,或者更糟糕的結果 。
五、 with關鍵字
with關鍵字用于Python的上下文管理器機制 。為了防止open這一類文件打開方法,在操作過程出現異?;蝈e誤,或者最后忘了執行close方法,文件非正常關閉等可能導致文件泄露、破壞的問題 。
【python怎樣運行 python如何打開文件】Python提供了with這個上下文管理器機制,保證文件會被正常關閉 。不需要再寫close語句 。注意縮進 。
with open('test.txt', 'w') as f:f.write('Hello, world!')with支持同時打開多個文件(文件都是隨機創建的):with open('1') as obj1, open('2','w') as obj2:s=obj1.read()obj2.write(s)六、總結本文基于Python基礎,使用Python語言,介紹了有關Python文件操作的知識點 。從文件的基本概念入手 ,通過一個個小項目的演示,對常用的讀寫模式,文件對象操作方法,以及在實際應用中需要注意的問題,都做了詳細的講解 。希望幫助你更好的學習Python 。
- 葡萄酒,喝葡萄酒的方法 怎樣喝葡萄酒
- Cad圓角怎么畫 cad怎樣畫圓角
- 怎樣自學編程入門 編程入門自學軟件
- ps字體大小怎么加粗 ps怎樣把字體加粗再加粗
- 讓你輕松說好挽留女友的話 怎樣才能挽回女友的心話
- 怎樣挽回女友才是最有效的呢 挽回女朋友?最有效的方法?
- python和java有什么關系 JAVA和Python的區別
- 如何查看電腦無線網卡型號的 怎樣查看電腦無線網卡型號
- 就是愛你入骨的人 愛你入骨的人是怎樣的
- 當想要重新開始一段新的戀情 感情結束后怎樣重新開始
