😏前言
在Python寫代碼做專案時,我們往往需要對多個檔案進行操作,在現在的源代碼檔案中怎么匯入其他檔案?怎么對其他檔案進行操作?這都是經常要面臨的問題,尤其是爬蟲,爬到的資料放在哪里?用到的時候怎么調出來?
這就涉及到了Python的檔案操作知識了,我們不可能永遠都只會在一個源檔案上做所有的操作,這也是必須掌握的一個知識板塊,
與此同時,我的Python新手入門教程系列文章也已經快更新完了,歡迎大家的訂閱:
Python新手入門教程系列文章專欄

文章目錄
- 😏前言
- 💼一、檔案的定義和操作
- 💼二、檔案的基本操作
- 💼三、檔案的方法與屬性
- 💼四、os模塊
- 🎓結語
💼一、檔案的定義和操作
計算機中的檔案通常是指計算機硬碟為載體的、存盤在計算機中的資訊集合,主要的表現形式為視頻、音頻、圖片以及檔案四類,比如執行性檔案.exe、檔案檔案.txt、網頁檔案.html等等,

💼二、檔案的基本操作
在現實中,我們對檔案進行操作可以大致總結為“打開→操作(閱讀、洗掉、修改等)→保存→關閉”,在Python當中依然是如此,在用Python開始檔案操作之前,我們先學幾個方法,
1.open(name,mode) ----打開檔案
這是Python打開檔案的方法,用于打開一個檔案,回傳的是一個檔案物件,
name指的是檔案名,一定要寫全,何為寫全?就是要寫清楚 存盤路徑+檔案名+后綴 ,
為何要寫這么全?因為就算是相同的存盤路徑下,檔案名相同的檔案也可能不止一個,只要后綴不一樣,計算機是允許存在同名檔案,所以不寫全的話,計算機是不知道你指的是誰
mode是打開檔案的模式,默認是r,也就是只讀的方式,mode的方式有很多,比如讀、寫等等,后面我們會講到,
2.write(“內容") ------寫
顧名思義,就是向檔案物件中寫入內容,
3.read() -------讀
向檔案中寫入內容,括號里面可以寫數字也可以不寫,不寫的話默認是讀取全部內容,寫數字則表示讀取X個字符,比如說read(6)則讀取檔案物件的6個字符,
4.close() ------關閉檔案
關閉檔案的方法,如果你在進行檔案操作之后不進行關閉檔案,則檔案一直處于打開和操作的狀態,會占用記憶體,
5.案例
在了解了這4個基本方法之后,我們來開始做1個小案例:新建一個專案,然后新建一個名為“檔案”的Python檔案用于寫代碼,然后我們用寫的方式向1個叫“檔案1”的.txt檔案寫入“hello world”,代碼如下:
f = open("檔案一.txt",'w') #以寫入的方式,打開檔案
f.write("hello world") #向檔案一中寫入內容
f.close() #關閉檔案
前面講過 open() 這個方法回傳的是一個檔案物件,所以我們用f進行接收一下,這是沒有運行前的界面:

運行后:

運行后生成了一個新的名為“檔案一.txt”檔案,打開它之后就能看到我們輸入的內容,進行寫操作時,如果檔案不存在,則默認會創建一個,
同樣的,我們也可以對這個檔案進行讀的操作:
f = open("檔案一.txt",'r') #以寫入的方式,打開檔案
print(f.read()) #讀檔案
f.close() #關閉檔案
運行結果:
hello world
這就是一個最基本的檔案操作流程,
在這里要注意一點,open(name,mode)在一開始寫的時候,mode就已經決定了你能做什么操作,也就是說如果你在開始寫代碼的時候寫的是:
f = open("檔案一.txt",'r') #只讀的方式打開檔案
那么后面你想進行write()的寫操作是會報錯的,因為mode里面宣告了r只讀模式,所以你沒有寫的權限,這一點要注意一下,
6.mode的其他操作模式
mode中有很多的操作模式,我們以表格的方式來看看:
| 模式 | 描述 |
|---|---|
| r | 以只讀的形式打開檔案,檔案的指標在開頭 |
| r+ | 讀寫,檔案指標在開頭 |
| rb | 以二進制的形式,只讀檔案指標在開頭 |
| w | 只寫,檔案不存在,則創建新的,存在則覆寫,指標在開頭 |
| w+ | 讀寫,檔案不存在,則創建新的,存在則覆寫,指標在開頭 |
| wb | 只寫,以二進制的形式 |
| a | 追加模式,檔案指標在結尾 |
| a+ | 讀寫,不存在則創建,存在直接追加 |
| ab | 以二進制形式追加 |
指標在這里可以理解為游標,它在哪里,你的操作就從哪里開始,
舉例:新建1個名為 “test” 的.txt檔案,第一次向里面寫入aaa,第二次向里面寫入bbb,
f = open("test.txt", 'a+')
f.write("aaa")
f.close()
f = open("test.txt") # 默認只讀模式
print(f.read()) # 列印內容
f = open("test.txt", 'a+')
f.write("bbb")
f.close()
f = open("test.txt") # 默認只讀模式
print(f.read()) # 再次列印內容
運行結果:
aaa
aaabbb
💼三、檔案的方法與屬性
1.file的物件屬性
有三個常用的方法可用于查看檔案物件的屬性:
1. closed
如果檔案物件已關閉,回傳True,否則回傳False
2. mode
回傳檔案物件的訪問模式
3. name
回傳檔案的名稱
案例:對檔案進行操作(隨意),查看被操作的檔案名、操作模式和是否關閉,
f = open("test.txt", 'a+')
f.write("aaa")
f.close()
print(f.closed) #查看是否關閉
print(f.name) #查看檔案名字
print(f.mode) #查看操作模式
運行結果:
True
test.txt
a+
2.file的物件方法
檔案的方法有很多,前面我們已經講過一點,比如read()和write(),但還有一些常用的方法需要掌握的,比如下面的:
1. close()
關閉檔案---非常重要
2. read([count])
讀取檔案中的內容
count:位元組數量
3. readlines()
讀取所有內容,打包成串列
4. readline()
讀取一行資料,追加讀取,讀取過的不能再次讀取
5. seek(offset,[from])
修改指標的位置:從from位置移動了offset個位元組
from:0則表示從起始位置,1則表示從當前位置開始,2則表示從末尾開始
oofset:要移動的位元組數
6. write()
向檔案中寫入內容
舉例:向test.txt檔案中寫入aaabbbccc,將檔案中的內容輸出為串列,
f = open("test.txt", 'a+')
f.write("aaabbbccc")
f.close()
f = open("test.txt")
print(f.readlines())
f.close()
運行結果:
['aaabbbcccaaabbbccc']
💼四、os模塊
os模塊是一個用于訪問作業系統的模塊,在進行檔案操作的時候常會用到它,模塊在使用之前要進行匯入,
import os
1.關于檔案的功能
1.os.rename(原檔案名,新的檔案名) ——檔案重命名
2.os.remove(檔案名) ——洗掉檔案
如果不說明路徑,則在源代碼所在檔案夾下尋找,尋找不到會報錯,
若想洗掉指定檔案夾下的檔案,檔案名則需要具體路徑,例如 os.remove(r"D:\test_1\檔案名"),r防止斜杠發生轉義
舉例:已有檔案test1.txt,將其修改成test20.txt,
import os
os.rename("test1.txt","test20.txt")
運行結果:

2.檔案夾的功能
1.os.mkdir(檔案夾名) ——創建檔案夾
2.os.rmdir(檔案夾名) ——洗掉檔案夾
3.os.getced() ——獲取當前目錄
4.os.chdir(目錄) ——切換目錄
5.os.listdir(目錄) ——獲取當前檔案夾下所有的檔案或者檔案夾,回傳一個串列
os.listdir("aa") #獲取aa檔案夾下的所有檔案或檔案夾,回傳一個串列
舉例:在現有檔案夾venv里面新建一個新建檔案夾,
import os
os.chdir(r"D:\檔案\venv") #切換到venv檔案夾下,r是防止轉義
os.mkdir("新建檔案夾") #在venv檔案夾下創建一個新建檔案夾
print(os.getcwd()) #輸出當前目錄位置
運行結果:

🎓結語
關于檔案其實還有很多的方法,用到的時候可以去網上查查資料去深入了解,比如說os模塊里面還有其他的方法,我們可以ctrl+滑鼠左鍵進入模塊內部查看,比如說不止os模塊,還有os.path這個模塊也是比較常用的檔案操作模塊,
那么今天的分享就先到這里,看完可以收藏起來多練練,檔案操作也就不再困難了,
準備了很久,我的公眾號終于是開始運作了,關于我的技術和經驗文章都會優先在上面進行推送,目前還在不斷完善中,歡迎大家的關注,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/302243.html
標籤:python
