寫在前面:大家好!我是【AI 菌】,一枚愛彈吉他的程式員,我
熱愛AI、熱愛分享、熱愛開源! 這博客是我對學習的一點總結與記錄,如果您也對深度學習、機器視覺、演算法、Python、C++感興趣,可以關注我的動態,我們一起學習,一起進步~
我的博客地址為:【AI 菌】的博客
我的Github專案地址是:【AI 菌】的Github
-> 前往【人生苦短,我學 Python】總目錄 <-
文章目錄
- 一、讀寫檔案
- 1.1 讀txt檔案
- (1) 讀取檔案中的全部內容
- (2) 逐行讀取檔案中的內容
- (3) 創建一個包含檔案各行內容的串列
- 1.2 寫txt檔案
- (1) 寫入空檔案
- (2) 寫入多行
- (3) 檔案添加新內容
- 二、存盤資料
- 2.1 寫入json檔案
- 2.2 向json檔案中添加內容
- 2.3 讀取json檔案
一、讀寫檔案
1.1 讀txt檔案
(1) 讀取檔案中的全部內容
# 打開example.txt檔案,并回傳檔案物件file
with open('example.txt') as file:
# 通過read()讀取檔案的全部內容,并將其作為一個字串存盤在all_contents中
all_contents = file.read()
# 顯示全部內容
print(all_contents)
執行該程式后,輸出example.txt檔案中的全部內容:
君不見黃河之水天上來,奔流到海不復回,
君不見高堂明鏡悲白發,朝如青絲暮成雪,
人生得意須盡歡,莫使金樽空對月,
天生我材必有用,千金散盡還復來,
(2) 逐行讀取檔案中的內容
with open('example.txt') as file:
# 遍歷檔案中的每一行
for line in file:
print(line)
執行該程式后,逐行輸出example.txt檔案中的每一行內容:
君不見黃河之水天上來,奔流到海不復回,
君不見高堂明鏡悲白發,朝如青絲暮成雪,
人生得意須盡歡,莫使金樽空對月,
天生我材必有用,千金散盡還復來,
容易發現,輸出每一行內容后,都多了一個空行, 這是因為每行的末尾都有一個看不見的換行符,而 print 陳述句也會加上一個換行符,因此每行末尾都有兩個換行符:一個來自檔案,另一個來自 print 陳述句,要消除這些多余的空白行,可在 print 陳述句中使用 rstrip() :
print(line.rstrip())
(3) 創建一個包含檔案各行內容的串列
使用關鍵字 with 時, open() 回傳的檔案物件只在 with 代碼塊內可用,如果要在 with 代碼塊外訪問檔案的內容,可在 with 代碼塊內將檔案的各行存盤在一個串列中,并在 with 代碼塊外使用該串列:你可以立即處理檔案的各個部分,也可推遲到程式后面再處理,
下面的示例在 with 結構中將檔案 example.txt 的各行存盤在一個串列中,再在 with 代碼塊外列印它們:
with open("example.txt") as file:
# 從檔案中讀取每一行,并將其存盤在一個串列lines中
lines = file.readlines()
# 逐行列印內容
for line in lines:
print(line.rstrip())
執行該程式后,逐行輸出example.txt檔案中的每一行內容:
君不見黃河之水天上來,奔流到海不復回,
君不見高堂明鏡悲白發,朝如青絲暮成雪,
人生得意須盡歡,莫使金樽空對月,
天生我材必有用,千金散盡還復來,
1.2 寫txt檔案
(1) 寫入空檔案
在前面的示例中,我們使用的open()其實包含兩個引數:
- 第一個引數filename,表示到打開或者寫入的檔案名;
- 第二個引數mode,模式有三種選擇:讀取模式(‘r’)、寫入模式(‘w’)、附加模式(‘a’),如果你省略了模式實參, Python 將以默認的只讀模式打開檔案,
要將文本寫入檔案,你在呼叫 open() 時需要提供另一個實參——寫入模式(‘w’),告訴 Python 你要寫入打開的檔案,為明白其中的作業原理,我們來將一條簡單的訊息存盤到檔案中:
# 以寫入模式打開檔案
with open("writeFile.txt", "w") as file:
# write()將一個字串寫入檔案
file.write("I Love Python!")
執行后,可以發現在你的工程目錄下產生了一個新的檔案writeFile.txt,該檔案中的內容是:I Love Python!
注意:Python 只能將字串寫入文本檔案,要將數值資料存盤到文本檔案中,必須先使用函式 str() 將其轉換為字串格式,
(2) 寫入多行
函式 write() 不會在你寫入的文本末尾添加換行符,因此你可以在寫入時指定換行符:
# 以寫入模式打開檔案
with open("writeFile.txt", "w") as file:
# write()將一個字串寫入檔案,并換行
file.write("I Love Python!\n")
file.write("AI Jun Love Python too!\n")
執行后,可以發現生成的新檔案writeFile.txt中有兩行內容:
I Love Python!
AI Jun Love Python too!
注意:如果在工程目錄下已有writeFile.txt檔案,則新寫入的內容會覆寫原來的所有內容,
(3) 檔案添加新內容
如果你要給檔案添加內容,而不是覆寫原有的內容,可以 附加模式 打開檔案,你以附加模式打開檔案時, Python 不會在回傳檔案物件前清空檔案,而你寫入到檔案的行都將添加到檔案末尾,如果指定的檔案不存在, Python 將為你創建一個空檔案,
接下來,在既有檔案 writeFile.txt 中再添加一些新的內容:
with open("writeFile.txt", "a") as file:
# 在原來writeFile.txt檔案中新添內容
file.write("I Love Python beacause it can work well!")
執行后,在原內容中新增了一行:
I Love Python!
AI Jun Love Python too!
I Love Python beacause it can work well!
二、存盤資料
模塊 json 讓你能夠將簡單的 Python 資料結構轉儲到檔案中,并在程式再次運行時加載該檔案中的資料,你還可以使用 json 在 Python 程式之間分享資料,更重要的是, JSON 資料格式并非 Python 專用的,這讓你能夠將以 JSON 格式存盤的資料與使用其他編程語言的人分享,這是一種輕便格式,很有用,也易于學習,
JSON ( JavaScript Object Notation )格式最初是為 JavaScript 開發的,但隨后成了一種常見格式,被包括 Python 在內的眾多語言采用,
2.1 寫入json檔案
使用 json.dump() 將資料存盤到JSON檔案中:
# 匯入模塊 json
import json
# 新建一個串列
numbers = [1,2,3,4,5]
# 以寫入模式打開這個檔案new.json
with open("new.json", "w") as file:
# 使用json.dump()將數字串列存盤到檔案中
json.dump(numbers, file)
執行后,在工程目錄下生成一個新的檔案new.json,檔案中存盤著新添的資料:[1, 2, 3, 4, 5]
注:json是Python中的內置模塊,在撰寫相關程式時,可以直接使用import匯入,不需要額外的安裝json庫,
2.2 向json檔案中添加內容
以寫入模式打開檔案,寫入的內容會覆寫原來檔案中的內容,有時希望在源檔案中添加新的內容,這時就必須以附加模式打開檔案,如下所示:
# 匯入模塊 json
import json
# 新建一個串列
list = [6, 7, 8, 9, 10]
# 以附加模式打開這個檔案new.json
with open("new.json", "a") as file:
# 使用json.dump()將數字串列存盤到檔案中
json.dump(list, file)
執行完后,程式在原來的new.json檔案中新添了內容:[6, 7, 8, 9, 10]
2.3 讀取json檔案
接下來,使用函式 json.load() 將JSON檔案中的串列讀取到記憶體中:
# 匯入模塊 json
import json
# 以只讀模式打開這個檔案new.json
with open("new.json", "r") as file:
# 使用json.load()將JSON檔案中的內容讀取到記憶體
list = json.load(file)
print("JSON檔案中存盤的內容是:", list)
運行結果:
JSON檔案中存盤的內容是: [1, 2, 3, 4, 5]
-> 回到【人生苦短,我學 Python】總目錄 <-

由于水平有限,博客中難免會有一些錯誤,有紕漏之處懇請各位大佬不吝賜教!
CSDN認證博客專家
博客專家
CSDN合作伙伴
演算法實習僧
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262143.html
標籤:AI
上一篇:天池熱身賽-布匹瑕疵目標檢測
