初學者python筆記(檔案的操作)

2021-10-03 11:43:14 字數 3711 閱讀 9358

當python學到一定程度的時候,就要跟檔案打交道了。到以後自己的寫程式,對檔案的操作是非常頻繁的,因此學會對檔案的操作也是python學習的一項基礎任務。

開啟檔案與讀取檔案

基本的開啟操作

f =

open

('test.txt'

,'r'encoding=

'gbk'

)#用唯讀形式開啟檔案,r是只寫,a是追加

#windows系統預設是gbk編碼,但如果你的檔案是utf-8,則一定要設定成utf-8,否則會打不開

data = f.read(

)#讀取檔案內容,並賦值給data變數

print

(data)

f.close(

)#開啟後要記得關閉檔案,否則內容不會瞬時儲存,而且檔案多了會影響程式的執行

**片的第一行,一般將檔案開啟後都用乙個變數來接收,便於在python的idle中操作,本篇文章預設都是用變數 f 來接收開啟後的檔案。

另外一些讀取函式

f.readable(): 判斷檔案是否可讀,返回布林值

f.readline():唯讀一行

print(f.readlin(),end='')#其中,end=』'表示去掉換行

檔案的寫

只寫的方式開啟

f =

open

('test.txt'

,'w'

,encoding=

'gbk'

)#用只寫的方式開啟檔案

data = f.read(

)print

(data)

f.close(

)#只寫方式讀取檔案,檔案存在,會把檔案清空;檔案不存在,會新建乙個檔案

內容的幾種寫入
f =

open

('test.txt'

,'a'

,encoding=

'gbk'

)f.write(

'窩拆\n'

)#\n表示換行

f.writelines(

'寫到最後了'])

#writelines()是寫乙個列表進去,但列表中元素必須字串型別

f.close(

)

內容的追加
f =

open

('test.txt'

,'a'

,encoding=

'gbk'

)f.write(

'寫到檔案最後了'

)#以追加的方式寫入,會預設追加到最後

f.close(

)

with open方式開啟檔案

開啟檔案後每次都要手動關閉感覺很麻煩,那就用with open,就不用手動關閉檔案了

with

open

('test.txt'

,'w'

,encoding=

'gbk'

)as f:

f.write(

'不需要手動關閉檔案了'

)

原始檔中讀到乙個檔案後寫到另外乙個檔案
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)

慎用w和w+(因為會把原始檔清空)

r+, w+, a+, x+都表示可讀,可寫

rb是以二進位制的方式讀,讀出來的內容的一長串位元組形式的字元,wb是以二進位制的方式寫

檔案開啟後的編碼問題

以二進位制形式開啟檔案對檔案的處理比較方便,但有很多需要注意的編碼問題

將二進位制解碼

f =

open

('test.txt'

,'rb'

)#rb,rw的形式不能指定編碼

data = f.read(

)#讀出來的內容將會是一串二進位制位元組

print

(data)

print

(data.decode(

'gbk'))

#用decode()將二進位制位元組解碼後就可以看到正常的內容了

bytes()編碼+解碼
f =

open

('test.txt'

,'wb'

)#rb,rw的形式不能指定編碼

#f.write() #wb無法寫入字串,只能寫入二進位制格式

data1 =

bytes

('這是用bytes()轉化成二進位制'

,encoding=

'gbk'

)#bytes函式必須指定編碼

f.write(data)

f.close(

)

encode()編碼+解碼
f =

open

('test.txt'

,'wb'

)#rb,rw的形式不能指定編碼

data =

'這是用encode()轉化成二進位制'

.encode(

'utf-8'

)f.write(data)

f.close(

)

二進位制處理檔案的好處

檔案操作的readlines()和truncate()

readlines()

f =

open

('test.txt'

,'r+'

,encoding=

'utf-8'

,newline='')

#多了乙個newline=''表示讀取檔案中真正的換行符號

data = f.readlines(

)#讀取完整內容,包括換行符

print

(data)

truncate()
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...