python基礎知識學習(檔案操作)

2021-10-08 09:56:19 字數 3494 閱讀 6255

開啟、讀寫、關閉

open(filename, mode=『r/w/a…』, buf = -1, encoding=『gbk /utf8…』 …)

開啟成功:返回可迭代物件

開啟失敗:丟擲異常

filename.close()with關鍵字:with open( ) as fp

eg.

with

open

('test.txt'

,'r'

)as src,

open

('test_new.txt'

,'w'

)as dst:

dst.write(src.read())

#【write() 只能寫入字串】不用關閉

fp =

open

(r'e:\python_learn\test.txt'

,'r'

)print

(fp.read())

fp.close(

)# 需要關閉

fp =

open

(r'e:\python_learn\test.txt'

,'r'

)lst =

list()

for line in fp:

#【一行一行讀取資料】

int(line)

)

二進位制檔案操作:對檔案進行序列化

pickle模組:import pickle

寫檔案

with

open

(r'e:\python_learn\sample_pickle.dat'

,'wb'

)as f:

try:

pickle.dump(

len(data)

, f)

//data為乙個列表,寫入列表長度

for item in data:

pickle.dump(item, f)

//寫入列表中的資料

except

:print

('寫檔案異常!'

)

讀檔案
with

open

(r'e:\python_learn\sample_pickle.dat'

,'rb'

)as f:

n = pickle.load(f)

//讀出檔案長度

for i in

range

(n):

x = pickle.load(f)

//讀出檔案內容

print

(x)

②struct模組:

寫檔案

import struct

n =130000000

x =96.45

b =true

s ='al@中國'

sn = struct.pack(

'if?'

, n , x, b)

//序列化

with

open

(r'e:\python_learn\sample_pickle.dat'

,'wb'

)as f:

f.write(sn)

//9個位元組

f.write(s.encode())

//9個位元組

讀檔案:
with

open

(r'e:\python_learn\sample_pickle.dat'

,'rb'

)as f:

sn = f.read(9)

//讀9個位元組

tu = struct.unpack(

'if?'

,sn)

//反序列化,得到乙個元組

print

(tu)

n, x, bl = tu //序列解包

print

(n, x, bl)

s = f.read(9)

.decode(

)//讀9個位元組

print

(s)

③shelve模組:

寫檔案

with shelve.

open

(r'e:\python_learn\sample_shelve.dat'

)as fp:

//檔案自動生成,原來沒有這個檔案,否則報錯

fp['zhangsan'

]= zhangsan

fp['lisi'

]= lisi

for i in

range(5

):fp[

str(i)]=

str(i)

讀檔案

with shelve.

open

(r'e:\python_learn\sample_shelve.dat'

)as fp:

print

(fp[

'zhangsan'])

print

(fp[

'zhangsan'][

'age'])

print

(fp[

'lisi'][

'qq'])

print

(fp[

'3']

)

④marshal模組:和pickle用法相似

寫檔案

with

open

(r'e:\python_learn\sample_marshal.dat'

,'wb'

)as fp:

marshal.dump(

len(x)

, fp)

//寫物件個數

for item in x:

marshal.dump(item, fp)

讀檔案

with

open

(r'e:\python_learn\sample_marshal.dat'

,'rb'

)as fp:

n = marshal.load(fp)

//讀物件個數

for i in

range

(n):

print

(marshal.load(fp)

)

python基礎學習 檔案操作

author feng lin date 2018 8 27 pycharm預設使用utf 8編碼格式 檔案操作 班主任.txt 1.檔案路徑 d 班主任.txt 2.編碼方式 utf 8,gbk.3.操作方式 唯讀,只寫,追加,讀寫,寫讀 注意 以什麼編碼方式儲存的檔案,就要以什麼編碼方式開啟進行...

Python學習基礎知識

1 python中的布林運算 1 python把0 空字串 和none看成 false,其他數值和非空字串都看成 true 2 python直譯器在做布林運算時,只要能提前確定計算結果,它就不會往後算了,直接返回結果。2 python中的list 新增 2 用list的 insert 方法,它接受兩...

Python基礎知識學習

anaconda環境配置 anaconda pycharm環境 參考 直譯器 參考 和 python入門 anaconda和pycharm的安裝和配置 print and input print hello,world x 12 print x s hello y len s print the l...