Python文件操作基礎(chǔ)及異常處理
在這篇將詳細(xì)介紹如何打開文件、讀寫文件,以及如何處理文件操作中的異常。
1. 打開文件:open()
open() 函數(shù)用于打開文件,并返回一個文件對象,你可以通過這個對象操作文件內(nèi)容。打開文件時,需要指定文件路徑和操作模式。
語法:
file_object = open(file_path, mode)
常見操作模式:
| 模式 | 描述 |
|---|---|
'r' | 讀取文件(默認(rèn)模式),文件必須存在。 |
'w' | 寫入文件,如果文件存在則清空內(nèi)容;如果文件不存在則創(chuàng)建。 |
'a' | 追加模式,將新內(nèi)容添加到文件末尾。 |
'b' | 二進(jìn)制模式,用于操作非文本文件(如圖片、音頻)。 |
'rb' | 以二進(jìn)制模式讀取文件。 |
'wb' | 以二進(jìn)制模式寫入文件。 |
示例:打開文件用于讀?。?/h3>
file = open('example.txt', 'r') # 打開文件用于讀取
print(file.read()) # 打印文件內(nèi)容
file.close() # 關(guān)閉文件
file = open('example.txt', 'r') # 打開文件用于讀取
print(file.read()) # 打印文件內(nèi)容
file.close() # 關(guān)閉文件
注意:如果忘記關(guān)閉文件,可能會占用系統(tǒng)資源或?qū)е聰?shù)據(jù)未及時寫入磁盤。
2. 使用 with 語句自動管理文件
使用 with 語句打開文件時,Python 會在代碼塊結(jié)束后自動關(guān)閉文件,避免忘記調(diào)用 close()。
讀取文件內(nèi)容:
with open('example.txt', 'r') as file:
content = file.read() # 讀取整個文件內(nèi)容
print(content) # 打印文件內(nèi)容
寫入文件內(nèi)容:
with open('example.txt', 'w') as file:
file.write('Hello, Python!\n') # 寫入一行文本
追加內(nèi)容:
with open('example.txt', 'a') as file:
file.write('This is a new line.\n') # 在文件末尾追加一行
3. 讀取文件的不同方式
Python 提供了多種讀取文件內(nèi)容的方式,適用于不同的場景。
| 方法 | 描述 | 示例 |
|---|---|---|
read() | 讀取整個文件內(nèi)容為字符串 | content = file.read() |
readline() | 讀取文件的一行內(nèi)容 | line = file.readline() |
readlines() | 讀取所有行并返回列表 | lines = file.readlines() |
示例:逐行讀取文件:
示例1
with open('example.txt', 'r') as file:
for line in file:
print(line.strip()) # 去除換行符并打印每一行
示例2
with open('example.txt', 'r') as file:
while True:
line = file.readline() # 讀取一行
if not line: # 如果是空字符串,說明文件結(jié)束
break
print(line.strip()) # 打印當(dāng)前行內(nèi)容
小提示: 如果是在某系統(tǒng)使用 ~/xxx.txt情況 , ~ 符號(代表用戶的主目錄)通常不會直接在文件路徑中被識別, 通過下面的方案改進(jìn)
import os
path = os.path.expanduser("~/xxx.txt")
with open(path, 'r') as file:
......
4. 文件異常處理
文件操作中可能會遇到錯誤,例如文件不存在或沒有權(quán)限。我們可以使用 try-except 語句來捕獲這些異常,避免程序崩潰。
常見異常:
FileNotFoundError:文件不存在。PermissionError:沒有權(quán)限訪問文件。
示例:捕獲文件異常:
try:
with open('nonexistent.txt', 'r') as file:
content = file.read()
print(content)
except FileNotFoundError:
print("錯誤:文件不存在。請檢查路徑。")
except PermissionError:
print("錯誤:沒有權(quán)限讀取該文件。")
except Exception as e:
print(f"發(fā)生了其他錯誤:{e}")
5. 二進(jìn)制文件操作
對于非文本文件(如圖片或音頻),需要以二進(jìn)制模式讀取和寫入。
示例:讀取二進(jìn)制文件:
with open('image.jpg', 'rb') as file:
data = file.read()
print(data[:10]) # 打印前10個字節(jié)的數(shù)據(jù)
示例:寫入二進(jìn)制文件:
with open('copy.jpg', 'wb') as file:
with open('image.jpg', 'rb') as src:
file.write(src.read()) # 復(fù)制圖片
6. 文件路徑說明
在 open() 中,文件路徑可以是絕對路徑或相對路徑:
絕對路徑:從根目錄開始的完整路徑。
示例:open('/Users/user/documents/file.txt', 'r')相對路徑:相對于當(dāng)前工作目錄的路徑。
示例:open('file.txt', 'r')
如果路徑中有中文或空格,可以使用原始字符串(r'')避免轉(zhuǎn)義錯誤:
with open(r'C:\用戶\文檔\文件.txt', 'r') as file:
print(file.read())
7. 總結(jié)
常見的文件操作步驟:
- 使用
open()或with語句打開文件。 - 選擇合適的讀取或?qū)懭肽J剑?code>'r'、
'w'、'a'等)。 - 使用
read()、write()、readlines()等方法進(jìn)行操作。 - 如果使用
open(),操作完成后要調(diào)用close()關(guān)閉文件。 - 使用
try-except捕獲文件操作中的異常。
完整代碼示例:
try:
with open('example.txt', 'r') as file:
print("文件內(nèi)容:")
print(file.read())
except FileNotFoundError:
print("文件不存在,請檢查路徑。")
except PermissionError:
print("沒有權(quán)限訪問該文件。")
except Exception as e:
print(f"發(fā)生了未知錯誤:{e}")
8. 小貼士
- 文件操作要小心:寫入模式
'w'會清空文件內(nèi)容,請確認(rèn)無誤后再使用。 - 處理換行符:讀取文本時,可以使用
strip()去除多余的換行符。 - 二進(jìn)制操作:當(dāng)處理圖片、音頻等非文本文件時,記得使用
'rb'或'wb'。
到此這篇關(guān)于Python文件操作基礎(chǔ)及異常處理的文章就介紹到這了,更多相關(guān)Python文件操作基礎(chǔ)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中SSH遠(yuǎn)程登錄設(shè)備的實現(xiàn)方法
本文主要介紹了python中SSH遠(yuǎn)程登錄設(shè)備,python中支持SSH協(xié)議的模塊主要有Paramiko和netmiko兩種,本文主要介紹了netmiko模塊,具有一定的參考價值,感興趣的可以了解一下2022-04-04
python進(jìn)階之多線程對同一個全局變量的處理方法
今天小編就為大家分享一篇python進(jìn)階之多線程對同一個全局變量的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
python中執(zhí)行shell的兩種方法總結(jié)
這篇文章主要介紹了python中執(zhí)行shell的兩種方法,有兩種方法可以在Python中執(zhí)行SHELL程序,方法一是使用Python的commands包,方法二則是使用subprocess包,這兩個包均是Python現(xiàn)有的內(nèi)置模塊。需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01

