開啟、讀寫、關閉
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...