python 檔案處理

來源:互聯網
上載者:User

標籤:readlines   絕對路徑   記憶體   控制代碼   方法   with open   mod   mode   info   

1、開啟檔案:

open 函數

open函數最常用的使用方法如下:檔案控制代碼 = open(‘檔案路徑‘, ‘模式‘,編碼方式)。 encode=‘‘

1、關於檔案路徑

#檔案路徑:

主要有兩種,一種是使用相對路徑,想上面的例子就是使用相對路徑。

另外一種就是絕對路徑, 如:C:/Users/Desktop/python/test.txt‘

 2、讀取檔案:

r  以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。(唯讀模式)指標在開頭
rb  以二進位格式開啟一個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。一般用於非文字檔片等。 (唯讀模式) 指標在開頭 
r+       開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 (讀寫入模式)指標在開頭             
rb+  以二進位格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。一般用於非文字檔片等
w  開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。(刪除原內容,寫入,檔案不存在就建立)指標在開頭          
wb  以二進位格式開啟一個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除如果該檔案不存在,建立新檔案。一般用於非文字檔片等。
w+  開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。指標在開頭
wb+  以二進位格式開啟一個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。一般用於非文字檔片等。
a   開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
ab   以二進位格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
a+   開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
ab+   以二進位格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# test.txt原文 :python,is,on,the,way
# 唯讀
f=open(‘test.txt‘,‘r‘)
print(f.read())# 輸出 python,is,on,the,way# 讀寫
#讀寫
# 先寫再度f=open(‘test.txt‘,‘r+‘)f.write(‘java‘)print(f.read()) #on,is,on, the, wayf.close() 常值內容:# javaon,is,on,the,way首先,以r 方式開啟游標都會在最開始的位置,這時候執行f.write(‘java‘),這時候就把原來的pyth 緊接著進行print(f.read())。就會把後面剩下的常值內容列印出來。所以輸出就是:on,is,on, the, way整個程式完成後,整個常值內容就成了javaon,is,on,the,way (游標!!)寫入的游標依據輸入字串的長度往後移動,,空格,逗號等符號也算!被取代

python,is,on,the,way
當寫入 java1234
最後文本中為 java1234s,on,the,way

#----------------------------------------------
#先讀再寫
f=open(‘test.txt‘,‘r+‘)
f.read()
f.write("java1234")
f.write("aa")
f.write("bb")
f.write("cc")
f.write("dd")
先讀再寫的結果: python,is,on,the,wayjava1234aabbccdd

先讀再寫就是往讀的後面依次添加,先寫再度就是在文本最開始位置依次添加。

迴圈檔案:f = open("text.txt",‘r‘,encoding="utf-8")for line in f:    print(line)f.close()就是輸出檔案的內容



3、關閉檔案:

而且還可能導致其他不安全隱患。還有一種方法可以讓我們不用去特意關注關閉檔案。那就是 with open()

with open(‘test.txt‘,‘a+‘) as f:    f.write(‘123‘)    print(f.readable())
# -----------------------------------------------------------------------讀取檔案的三種操作1、read()       #一次性讀取文本中全部的內容,以字串的形式返回結果

特點是:讀取整個檔案,將檔案內容放到一個字串變數中。劣勢是:如果檔案非常大,尤其是大於記憶體時,無法使用read()方法。read()直接讀取位元組到字串中,包括了分行符號

2、readline()   #唯讀取每次讀取第一行的內容,以字串的形式返回結果3、readlines()  #讀取文本所有內容,並且以列表的格式返回結果,一般配合for in使用

#--------------------------------------------------------------------------------
text = file.read()  # 結果為str類型
read()、.readline() 和 .readlines()。每種方法可以接受一個變數以限制每次讀取的資料量,但它們通常不使用變數。


 

# 寫入
python 寫檔案write(string), writelines(list)

# test.txt原文 :python,is,on,the,way

f=open(‘test.txt‘,‘r+‘)
# 前面加 r
print(f.read())
f.write(r‘this\nis\nhaiku‘) #write(string)
print(f.read()) >>輸出
python,is,on,the,way
this\nis\nhaiku

# 不加 r
輸出:

python,is,on,the,way
this
is
haiku


還有write、writelines方法,用法與上述方法對應類似,只不過write寫入的對象時字串(str),writelines寫入的是列表(list),即:obj.write(str)obj.writelines(sequence)
# writelines(list)

list02 = ["11","test","hehe","44","55"]


obj.writelines(list02)

 

 

四、 常見的mode取值組合
1、r或rt    預設模式,文字模式讀
2、rb      二進位檔案
3、w或wt    文字模式寫,開啟前檔案儲存體被清空
4、wb    二進位寫,檔案儲存體同樣被清空 
5、a   追加模式,只能寫在檔案末尾
6、a+  可讀寫入模式,寫只能寫在檔案末尾 
7、w+ 可讀寫,與a+的區別是要清空檔案內容
8、r+   可讀寫,與a+的區別是可以寫到檔案任何位置 

python 檔案處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.