5 1python語法基礎 檔案操作

2022-05-14 18:18:34 字數 2004 閱讀 3961

檔案操作,

看看python的官方文件,:

檔案操作分為開啟,讀,寫,關閉,

f = open("aa.txt","w")

這個方法有兩個引數,第乙個是file,第二個mode開啟模式, 這兩個都必須是字串,w+,如果檔案不存在是會幫我們建立檔案的,但是不會幫我們建立資料夾,這個要記住,

關於第乙個引數,

這個開啟檔案是直接在當前資料夾下開啟乙個檔案,這個時候,如果模式是w,沒有這個檔案是會自動建立的,但是如果模式是r,會報錯異常的,

注意2,f = open("./111/aa.txt","w")

這個是按照路徑開啟檔案,這個路徑裡面的資料夾或者檔案如果不存在是會報錯的,也就是這種方法不會幫我們自動建立乙個檔案出來,

注意3,f = open("aa.txt","w+")

另外詳細解釋這個模式有多少種,

# r,唯讀,read,這是預設開啟方式,如果不加第二個modo引數,就是唯讀開啟

# w,只寫,write,

# a,追加,add,

# r+,以讀寫方式開啟,如果檔案不存在,丟擲異常

# w+,以讀寫方式開啟,如果檔案不存在,建立檔案,這種方式記住是會覆蓋檔案的,

# a+,以讀寫方式開啟,如果檔案存在,指標放到檔案末尾,如果檔案不存在,建立檔案,

上面是常用的,還有不常用的,

wb 以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

f = open("./woffs/aaaa.txt","w+")

f.write("1234")

f.close()

f = open("./woffs/aa.txt","r")

print(f.read())

f.close()

注意這個模式,

def write_big_text(file):  # 讀取大檔案

# 開啟

file = open(file, 'r')

# 讀取

whiletrue:

text=file.readline()

print(text,end='') # 讀取每一行的末尾預設已經有了乙個'\n'

if nottext:

break

# 關閉

file.close()

def open_file(file):

try:

with open(file,'r') as f :

text=f.read()

print(text)

except filenotfounderror:

print('檔案不存在')

except exception as result:

print('未知錯誤%s'%result)

file = '123.txt'

open_file(file)

呼叫 f.write() 時,未使用 with 關鍵字,或未呼叫 f.close(),即使程式正常退出,也**可能** 導致 f.write() 的引數沒有完全寫入磁碟。

# 使用open每次都要關閉,太麻煩,而且會影響檔案的後續操作,所以最常用的還是使用with開啟檔案,這樣就不用呼叫close方法了,

所以推薦使用with方法,

簡述with方法開啟處理檔案幫我我們做了什麼?

開啟檔案在進行讀寫的時候可能會出現一些異常狀況,如果按照常規的f.open

寫法,我們需要try,except,finally,做異常判斷,並且檔案最終不管遇到什麼情況,都要執行finally f.close()關閉檔案,with方法幫我們實現了finally中f.close

with open("

./woffs/aa.txt

","w+

") as f:

f.write(

"123123123")

print(f.closed) #

true

python裝飾器詳解51 python裝飾器詳解

簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 import time def func p...

51 Python字典常見的用法

adict dict name bob age 30 len adict hash 10 判斷給定的資料是不是不可變的,不可變資料才能作為key adict.keys adict.values adict.items get方法常用,重要 adict.get name 取出字典中name對應的val...

51 Python 迴圈中的else語句

迴圈中的else語句是python提供的乙個特殊語法 while,for 迴圈可以附帶乙個else 語句 可選 如果for,while 語句沒有被break語句結束,則會執行else字句 否則不執行 語法格式如下 while 條件表示式 迴圈體else 語句塊或者 for 變數 in 可迭代物件 迴...