當python學到一定程度的時候,就要跟檔案打交道了。到以後自己的寫程式,對檔案的操作是非常頻繁的,因此學會對檔案的操作也是python學習的一項基礎任務。
開啟檔案與讀取檔案
基本的開啟操作
**片的第一行,一般將檔案開啟後都用乙個變數來接收,便於在python的idle中操作,本篇文章預設都是用變數 f 來接收開啟後的檔案。f =
open
('test.txt'
,'r'encoding=
'gbk'
)#用唯讀形式開啟檔案,r是只寫,a是追加
#windows系統預設是gbk編碼,但如果你的檔案是utf-8,則一定要設定成utf-8,否則會打不開
data = f.read(
)#讀取檔案內容,並賦值給data變數
(data)
f.close(
)#開啟後要記得關閉檔案,否則內容不會瞬時儲存,而且檔案多了會影響程式的執行
另外一些讀取函式
f.readable()
: 判斷檔案是否可讀,返回布林值
f.readline()
:唯讀一行
print(f.readlin(),end='')
#其中,end=』'表示去掉換行
檔案的寫
只寫的方式開啟
內容的幾種寫入f =
open
('test.txt'
,'w'
,encoding=
'gbk'
)#用只寫的方式開啟檔案
data = f.read(
(data)
f.close(
)#只寫方式讀取檔案,檔案存在,會把檔案清空;檔案不存在,會新建乙個檔案
內容的追加f =
open
('test.txt'
,'a'
,encoding=
'gbk'
)f.write(
'窩拆\n'
)#\n表示換行
f.writelines(
'寫到最後了'])
#writelines()是寫乙個列表進去,但列表中元素必須字串型別
f.close(
)
with open方式開啟檔案f =
open
('test.txt'
,'a'
,encoding=
'gbk'
)f.write(
'寫到檔案最後了'
)#以追加的方式寫入,會預設追加到最後
f.close(
)
開啟檔案後每次都要手動關閉感覺很麻煩,那就用with open,就不用手動關閉檔案了
從原始檔中讀到乙個檔案後寫到另外乙個檔案with
open
('test.txt'
,'w'
,encoding=
'gbk'
)as f:
f.write(
'不需要手動關閉檔案了'
)
慎用w和w+(因為會把原始檔清空)with
open
('test.txt'
,'w'
,encoding=
'gbk'
)as fone:
with
open
('test2.txt'
,'r'
,encoding=
'gbk'
)as ftwo:
#將test2作為原始檔
data = ftwo.read(
) fone.write(data)
r+, w+, a+, x+都表示可讀,可寫
rb是以二進位制的方式讀,讀出來的內容的一長串位元組形式的字元,wb是以二進位制的方式寫
檔案開啟後的編碼問題
以二進位制形式開啟檔案對檔案的處理比較方便,但有很多需要注意的編碼問題
將二進位制解碼
bytes()編碼+解碼f =
open
('test.txt'
,'rb'
)#rb,rw的形式不能指定編碼
data = f.read(
)#讀出來的內容將會是一串二進位制位元組
(data)
(data.decode(
'gbk'))
#用decode()將二進位制位元組解碼後就可以看到正常的內容了
encode()編碼+解碼f =
open
('test.txt'
,'wb'
)#rb,rw的形式不能指定編碼
#f.write() #wb無法寫入字串,只能寫入二進位制格式
data1 =
bytes
('這是用bytes()轉化成二進位制'
,encoding=
'gbk'
)#bytes函式必須指定編碼
f.write(data)
f.close(
)
二進位制處理檔案的好處f =
open
('test.txt'
,'wb'
)#rb,rw的形式不能指定編碼
data =
'這是用encode()轉化成二進位制'
.encode(
'utf-8'
)f.write(data)
f.close(
)
檔案操作的readlines()和truncate()
readlines()
truncate()f =
open
('test.txt'
,'r+'
,encoding=
'utf-8'
,newline='')
#多了乙個newline=''表示讀取檔案中真正的換行符號
data = f.readlines(
)#讀取完整內容,包括換行符
(data)
f =
open
('test.txt'
,'r+'
,encoding=
'utf-8'
)f.truncate(2)
#擷取前10個位元組的內容,前提是可寫的方式開啟
#而r+,w+,a+,x+都表示可讀,並且可寫(慎用w+)
初學者的筆記!!!
幾天不更新了!出差偷懶都是理由,主要是偷懶吧!出差只是乙個藉口!為了盡快學習 因為大公司進不去 所以主動來到一家小公司。本來以為會好好學 有大佬會貼身講解。但半個月的裝置除錯經歷讓我知道了,沒有這麼簡單。今天聽了好不容易可以聽一下大佬是怎麼改錯誤的。畢業兩年的大佬,也是我現在可以遇見的幾乎是最大的大...
python初學者筆記 列表(list)
說明 初學python,個人筆記,內容比較基礎。如果有讀者能夠發現錯誤並指出,或者有更好的建議,萬分感謝!簡介 列表是python中最具靈活性的有序集合物件型別。特點 任意物件的有序集合 通過偏移讀取 可變長度,異構以及任意巢狀,屬於可變序列 物件引用陣列 與 的使用 a 1 2,3 b 4 5,6...
python初學者學習筆記(1)
一 前期的準備 注 同一臺電腦可以安裝多個版本的python,需要切換使用可在配置環境變數中修將要使用的版本置頂。二 python執行過程 原始檔 py檔案 載入後經過編譯 位元組碼檔案 pyc檔案 二進位制 直譯器解釋 輸出 編譯方式 方法一 python shell輸入 import py co...