讀寫檔案:
在python中有內建的讀寫檔案的函式。
在現代的作業系統中,系統是不允許普通的程式直接訪問我們的磁碟,
但是有時候我們需要檔案讀寫的操作,這時候我們就需要傳送乙個請求
給我們的作業系統,作業系統會給我們返回乙個檔案物件,然後,通過
作業系統提供的介面來將資料寫入磁碟或者是從磁碟讀出資料。
讀取檔案:
語法:f = open(path,mode,)
引數一:開啟檔案的路徑
引數二:模式,讀/寫
引數三:encoding指定encoding編碼格式
mode取值為"r"為讀取,預設取值"r"
f.read()
功能:一次性讀取所有的內容,讀取出來的資料型別是str
f.read(size)
功能:一次性讀取size個位元組
使用此方法讀取的時候我們需要迴圈讀取
f.readline()
功能:一次性讀取一行,使用此方法讀取檔案的時候,我們也需要迴圈讀取。
一般情況下使用此方法配置檔案較多
f.readlines()
功能:一次性讀取所有行,以列表的方式返回。
注意:當檔案過大的時候不建議使用f.read(),f.readlines(),
因為使用這兩種方式都是一次性讀取的。
f.close()
功能:關閉檔案
當我們檔案讀取完畢之後,一定要記得關閉。
1.開啟的檔案它是佔記憶體的
2.同一時間作業系統能夠開啟檔案的個數也是有限的。
系統提供了乙個新的語句:
with open(path,mode,encoding,errors=「strict」) as f:
#讀取檔案
errors:當遇到編碼問題的時候,處理方式,
預設處理方式,嚴格的,若出現編碼錯誤則崩潰
errors:「ignore」 忽略編碼錯誤的問題。
path = r"d:\python1903\pythonjichu\szpython1903\day14\隨堂筆記.py"
f = open(path,「r」,encoding = 「utf-8」)
# str1 = f.read(1)
# if str1 == "":
# break
# print(str1,end="")
f.close()
with open(path,「r」,encoding=「utf-8」,errors=「ignore」) as f1:
print(f1.readline())
讀取二進位制檔案:
寫入檔案:
注意:當讀取檔案的時候,檔案不存在的情況下,會報錯
若寫入檔案的時候,該檔案不存在的情況下則會新建乙個檔案。
寫入檔案:
語法:#開啟檔案物件
with open(path,mode,encoding,errors) as f:
#寫入檔案
f.write(str)
mode: w【覆蓋寫】/a【追加寫】
使用w寫入檔案的時候,若檔案不存在,則建立,若檔案存在,則覆蓋。
使用a來進行寫入檔案的時候,若檔案不存在,則建立,若檔案存在,則追加。
str1 = 「how are you 你好!!!」
需求:將1個字典寫入檔案,並且讀出,讀出還是字典。
將多個字典寫入檔案,並且讀出,讀出還是字典。
def witerdict(d,path):
with open(path,「w」,encoding=「utf-8」) as f:
f.write(str(d))
def readdict(path):
with open(path,「r」,encoding=「utf-8」) as f:
str1 = f.read()
return eval(str1)
def witerdict2(dl,path):
with open(path,「w」,encoding=「utf-8」) as f:
for d in dl:
f.write(str(d)+"\n")
ifname== 『main』:
dict1 =
witerdict2([dict1,dict1,dict1],「dl.txt」)
# witerdict(dict1,「dict.txt」)
# d2 = readdict(「dict.txt」)
# print(d2)
# print(type(d2))
print(readdict2(「dl.txt」))
資料在記憶體中的讀寫:
stringio是資料在記憶體中讀取或寫入字串的時候使用。
from io import stringio
f = stringio()
f.write(「hello\n」)
f.write(「nice\n」)
f.write(「good」)
f2 = stringio(「hello\nnice\ngreat」)
print(f2.readline(),end="")
print(f2.readline(),end="")
print(f2.readline(),end="")
在記憶體中讀取二進位制字串:
bytesio用來在記憶體中讀寫二進位制的字串。
from io import bytesio
f = bytesio()
f.write(「中國」.encode(「utf-8」))
print(f.getvalue())
str1 = b』\xe4\xb8\xad\xe5\x9b\xbd』
f2 = bytesio(str1)
print(f2.read().decode(「utf-8」))
python基礎(13) 檔案
檔案的基本方法 可使用函式open,它位於自動匯入的模組io中。1.open函式將檔名作為唯一必不可少的引數,返回乙個可讀取的檔案物件 open a.py a.py mode r encoding cp936 2.如果要寫入檔案,必須通過指定模式來顯式地指出這一點 3.若不存在該檔案,則會產生如下錯...
13 檔案操作 2 讀操作
三 檔案讀取偏移量 檔案讀寫的介面位於io包,file檔案類是這些介面的實現類。read 實現的是按位元組數讀取 readbyte make byte 128 指定要讀取的長度 for fmt.println read string readbyte n if n 128 bufio封裝了io.re...
python13檔案 13 Python 檔案
概述 嚴格講,檔案不屬於資料型別。02操作 1 開啟檔案 1 基本語法 file open 檔名 mode 引數mode模式可選引數,分為 r讀 w寫 a追加 r w a後面可接第二個引數,b標書二進位制,f open data.bin rb 2 完整語法格式為 open file,mode r b...