Python基礎語法13 檔案讀寫

2021-09-24 22:16:49 字數 3851 閱讀 9251

讀寫檔案:

在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...