Python文件操作和異常處理的方法和技巧
Python文件操作和異常處理
Python作為一門高級(jí)編程語(yǔ)言,為我們提供了豐富的文件操作和異常處理機(jī)制。在本文中,我們將從以下幾個(gè)方面討論P(yáng)ython文件操作和異常處理的相關(guān)知識(shí):
- 文本文件和二進(jìn)制文件的讀寫
- JSON文件的讀寫
- 異常處理機(jī)制
文本文件和二進(jìn)制文件的讀寫
Python可以輕松地讀寫文本文件和二進(jìn)制文件,我們可以使用內(nèi)置的open()函數(shù)來(lái)打開文件并獲取文件對(duì)象,從而進(jìn)行讀寫操作。下面是一些常用的open()函數(shù)的參數(shù):
file:文件名稱和路徑mode:打開文件的模式(讀、寫、追加等)buffering:指定讀寫過(guò)程中的緩存大小encoding:指定編碼格式(對(duì)于文本文件)
讀寫文本文件
在Python中,讀寫文本文件非常容易。我們可以使用open()函數(shù)打開文件,然后使用read()、readline()、readlines()等方法來(lái)讀取文件中的內(nèi)容。下面是一些常用的讀取文本文件的方法:
read()方法
read()方法可以一次性讀取整個(gè)文件內(nèi)容,例如:
with open('file.txt', 'r') as f:
content = f.read()
print(content)readline()方法
readline()方法可以逐行讀取文件,例如:
with open('file.txt', 'r') as f:
line = f.readline()
while line:
print(line, end='')
line = f.readline()readlines()方法
readlines()方法可以將文件按行讀取到一個(gè)列表容器中,例如:
with open('file.txt', 'r') as f:
lines = f.readlines()
print(lines)在上面的例子中,readlines()方法返回的是一個(gè)包含所有行的列表。
除了讀取文件,我們也可以使用write()方法來(lái)向文件中寫入文本內(nèi)容。例如:
with open('file.txt', 'w') as f:
f.write('Hello, world!\\n')
f.write('This is a test file.')在上面的例子中,我們使用write()方法向文件中寫入了兩行文本內(nèi)容。
讀寫二進(jìn)制文件
要讀寫二進(jìn)制文件,我們只需要將open()函數(shù)的模式參數(shù)設(shè)置為'rb'或'wb'即可。例如,下面的代碼實(shí)現(xiàn)了復(fù)制圖片文件的功能:
def main():
try:
with open('guido.jpg', 'rb') as fs1:
data = fs1.read()
print(type(data)) # <class 'bytes'>
with open('new.jpg', 'wb') as fs2:
fs2.write(data)
except FileNotFoundError as e:
print('指定的文件無(wú)法打開.')
except IOError as e:
print('讀寫文件時(shí)出現(xiàn)錯(cuò)誤.')
print('程序執(zhí)行結(jié)束.')
if __name__ == '__main__':
main()在上面的例子中,我們使用open()函數(shù)讀取了一張圖片,然后使用read()方法將圖片數(shù)據(jù)讀入到內(nèi)存中,最后使用open()函數(shù)將圖片數(shù)據(jù)寫入到了另一個(gè)二進(jìn)制文件中。
讀寫JSON文件
在Python中,我們可以將字典、列表等數(shù)據(jù)以JSON格式保存到文件中。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫。本文將介紹如何使用Python的json模塊讀寫JSON文件。
JSON簡(jiǎn)介
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它是基于JavaScript語(yǔ)言的一個(gè)子集,但是它采用了類似于C語(yǔ)言家族的語(yǔ)法。JSON的數(shù)據(jù)格式是獨(dú)立于任何編程語(yǔ)言的,因此它很容易被不同的程序和平臺(tái)使用和解析。JSON格式的數(shù)據(jù)是一個(gè)字符串,它表示了一個(gè)結(jié)構(gòu)化的數(shù)據(jù)對(duì)象。
Python中的JSON處理
Python中的json模塊可以將Python對(duì)象轉(zhuǎn)換為JSON格式的字符串,也可以將JSON格式的字符串轉(zhuǎn)換為Python對(duì)象。主要有以下四個(gè)函數(shù):
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw):將Python對(duì)象obj以JSON格式保存到文件fp中。json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw):將Python對(duì)象obj以JSON格式的字符串返回。json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):從文件fp中讀取JSON格式的數(shù)據(jù),并將其轉(zhuǎn)換為Python對(duì)象。json.loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):將JSON格式的字符串s轉(zhuǎn)換為Python對(duì)象。
示例
下面是一個(gè)演示如何將字典保存為JSON格式的文件的示例代碼:
import json
data = {
"name": "John",
"age": 30,
"city": "New York",
"pets": ["dog", "cat"]
}
with open("data.json", "w") as f:
json.dump(data, f)上述代碼將字典data保存為名為data.json的文件。
下面是一個(gè)演示如何從JSON格式的文件中讀取數(shù)據(jù)并轉(zhuǎn)換為Python對(duì)象的示例代碼:
import json
with open("data.json", "r") as f:
data = json.load(f)
print(data)上述代碼將從名為data.json的文件中讀取數(shù)據(jù),并將其轉(zhuǎn)換為Python對(duì)象。
總結(jié)
本文介紹了如何使用Python的json模塊讀寫JSON文件。在Python中,我們可以使用json.dump()和json.load()函數(shù)將Python對(duì)象以JSON格式保存到文件中和從JSON格式的文件中讀取數(shù)據(jù)并轉(zhuǎn)換為Python對(duì)象。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,因此在網(wǎng)絡(luò)API和文件交換等場(chǎng)景中得到了廣泛的應(yīng)用。
到此這篇關(guān)于Python文件操作和異常處理的方法和技巧的文章就介紹到這了,更多相關(guān)Python文件操作和異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中淺拷貝copy與深拷貝deepcopy的簡(jiǎn)單理解
今天小編就為大家分享一篇關(guān)于Python中淺拷貝copy與深拷貝deepcopy的簡(jiǎn)單理解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10
Python中使用haystack實(shí)現(xiàn)django全文檢索搜索引擎功能
django是python語(yǔ)言的一個(gè)web框架,功能強(qiáng)大。配合一些插件可為web網(wǎng)站很方便地添加搜索功能。下面通過(guò)本文給大家分享Python中使用haystack實(shí)現(xiàn)django全文檢索搜索引擎功能,感興趣的朋友一起看看吧2017-08-08
詳解Python自動(dòng)化之文件自動(dòng)化處理
今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python文件自動(dòng)化處理展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python中的數(shù)學(xué)運(yùn)算操作符使用進(jìn)階
這篇文章主要介紹了Python中的數(shù)學(xué)運(yùn)算操作符使用進(jìn)階,也包括運(yùn)算賦值操作符等基本知識(shí)的小結(jié),需要的朋友可以參考下2016-06-06
詳解Python中類方法@classmethod的應(yīng)用技巧
在Python中,類方法(class method)是一種特殊的方法,可以在不創(chuàng)建類的實(shí)例的情況下調(diào)用,本文將詳細(xì)介紹類方法的概念、用法以及在實(shí)際開發(fā)中的應(yīng)用場(chǎng)景,希望對(duì)大家有所幫助2024-03-03
python 如何獲取頁(yè)面所有a標(biāo)簽下href的值
這篇文章主要介紹了python 獲取頁(yè)面所有a標(biāo)簽下href的值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05
基于Python實(shí)現(xiàn)智能停車場(chǎng)車牌識(shí)別計(jì)費(fèi)系統(tǒng)
這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)一個(gè)智能停車場(chǎng)車牌識(shí)別計(jì)費(fèi)系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-04-04
python讀取excel數(shù)據(jù)并且畫圖的實(shí)現(xiàn)示例
這篇文章主要介紹了python讀取excel數(shù)據(jù)并且畫圖的實(shí)現(xiàn)示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02

