python的檔案操作還是比較簡單的基本分為三步:開啟,讀寫,關閉
檔案開啟
f=open('db','r'
) 開啟
f.read() 讀
f.close() 關閉
為了避免程式設計師忘記最後一步關閉,優雅的python使用了以下語句:
with open('db','
r') as f,open('
db2','r'
) as f2:
opration...
當然要記得冒號和縮排啦。。
檔案操作
檔案操作分為5個基本模式:
#f = open('db', 'r') # 唯讀
#f = open('db', 'w') # 只寫,先清空原檔案
#f = open('db', 'x') # 檔案存在,報錯;不存在,建立並只寫,用的不多
#f = open('db', 'a') # 追加
還有乙個+的模式,但要與基本模式組合使用
r+讀寫w+寫讀,先清空,後寫入,再讀取
a+ 追加寫入,永遠是檔案末尾追加
還有乙個b,b是以二進位制開啟,但不能加encoding引數
#f = open('db', 'rb') #以二進位制開啟,不能加encoding引數,
一般open()引數中,需要加(操作物件,操作模式,encoding編碼)
操作時需要注意一定,二進位制開啟不需要設定enconding,但write寫入中文時,需要先將中文反轉為二進位制:
f=open('db','
ab') #
#二進位制開啟就不需要寫編碼了
f.write(bytes('
李傑',encoding='
utf-8
')) #
寫入時要反轉為二進位制
f.write() 對檔案進行寫入操作。
操作檔案
read() 無引數,全部讀取;有引數:b,按位元組讀取,無b按字元讀取readlines() 將文字每一行讀取,並轉為列表
readline 讀每一行
f.tell() 顯示當前指標所在的位置
f.seek(10) 移動指標到目標位置,使用seek()移動指標後,寫入檔案都後直接覆蓋後面的內容,並非插入
f.fileno() 顯示檔案描述符
f.flush() 將緩衝區的檔案強制寫硬碟
f.readable() 判斷是否可讀
f.truncate() 擷取資料,使用seek()移動指標,清空指標後面的內容,只保留前面的內容
f.write() 寫資料,如果open中有b,按位元組,如果無b,按字元
f=open('db','r+'
)#print(f.read())
(())
(f.tell())
f.seek(f.tell())
(f.tell())
f.write('成
') #直接覆蓋
print(f.read())
栗子:
f = open("db", 'ab'
)f.write(bytes("李傑
", encoding="
utf-8"))
f.close()
f = open("
db", '
r+', encoding="
utf-8")
#f.fileno()
#如果開啟模式無 b,則read,按照字元讀取
data = f.read(1)
#tell當前指標所在的位置(位元組)
(f.tell())
#調整當前指著你的位置(位元組)
f.seek(f.tell())
#當前指標位置開始向覆蓋
f.write("
888"
)f.close()
python基礎之檔案操作
開啟檔案並輸出檔案內容模板 f open flie mode r encoding utf 8 data f.read 返回整個檔案資料 data f.readlines 以列 式,返回整個檔案資料 print data f.close flie檔案路徑 相對路徑或者絕對路徑 mode檔案開啟模式 ...
Python基礎之檔案操作
1 開啟檔案的方法 第一種 開啟檔案執行完命令後,需要關閉檔案,否則會一直占用記憶體空間 f open data 1.txt r encoding utf 8 後面的r 表示開啟檔案的模式是讀寫,encoding 8 是指定編碼格式,因為用open 函式開啟,open 函式會去找系統的預設編碼,wi...
python基礎之檔案操作
轉義rb 讀位元組 爬蟲 讀取出來的全部是位元組碼 f open test.text rb encoding utf 8 print f.read 報錯!valueerror binary mode doesn t take an encoding argument 因為rb rb 操作時不支援指定...