Python文件操作和異常處理的方法和技巧
Python文件操作和異常處理
Python作為一門高級編程語言,為我們提供了豐富的文件操作和異常處理機制。在本文中,我們將從以下幾個方面討論Python文件操作和異常處理的相關(guān)知識:
- 文本文件和二進制文件的讀寫
- JSON文件的讀寫
- 異常處理機制
文本文件和二進制文件的讀寫
Python可以輕松地讀寫文本文件和二進制文件,我們可以使用內(nèi)置的open()
函數(shù)來打開文件并獲取文件對象,從而進行讀寫操作。下面是一些常用的open()
函數(shù)的參數(shù):
file
:文件名稱和路徑mode
:打開文件的模式(讀、寫、追加等)buffering
:指定讀寫過程中的緩存大小encoding
:指定編碼格式(對于文本文件)
讀寫文本文件
在Python中,讀寫文本文件非常容易。我們可以使用open()
函數(shù)打開文件,然后使用read()
、readline()
、readlines()
等方法來讀取文件中的內(nèi)容。下面是一些常用的讀取文本文件的方法:
read()
方法
read()
方法可以一次性讀取整個文件內(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()
方法可以將文件按行讀取到一個列表容器中,例如:
with open('file.txt', 'r') as f: lines = f.readlines() print(lines)
在上面的例子中,readlines()
方法返回的是一個包含所有行的列表。
除了讀取文件,我們也可以使用write()
方法來向文件中寫入文本內(nèi)容。例如:
with open('file.txt', 'w') as f: f.write('Hello, world!\\n') f.write('This is a test file.')
在上面的例子中,我們使用write()
方法向文件中寫入了兩行文本內(nèi)容。
讀寫二進制文件
要讀寫二進制文件,我們只需要將open()
函數(shù)的模式參數(shù)設(shè)置為'rb'
或'wb'
即可。例如,下面的代碼實現(xiàn)了復制圖片文件的功能:
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('指定的文件無法打開.') except IOError as e: print('讀寫文件時出現(xiàn)錯誤.') print('程序執(zhí)行結(jié)束.') if __name__ == '__main__': main()
在上面的例子中,我們使用open()
函數(shù)讀取了一張圖片,然后使用read()
方法將圖片數(shù)據(jù)讀入到內(nèi)存中,最后使用open()
函數(shù)將圖片數(shù)據(jù)寫入到了另一個二進制文件中。
讀寫JSON文件
在Python中,我們可以將字典、列表等數(shù)據(jù)以JSON格式保存到文件中。JSON是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫。本文將介紹如何使用Python的json
模塊讀寫JSON文件。
JSON簡介
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它是基于JavaScript語言的一個子集,但是它采用了類似于C語言家族的語法。JSON的數(shù)據(jù)格式是獨立于任何編程語言的,因此它很容易被不同的程序和平臺使用和解析。JSON格式的數(shù)據(jù)是一個字符串,它表示了一個結(jié)構(gòu)化的數(shù)據(jù)對象。
Python中的JSON處理
Python中的json
模塊可以將Python對象轉(zhuǎn)換為JSON格式的字符串,也可以將JSON格式的字符串轉(zhuǎn)換為Python對象。主要有以下四個函數(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對象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對象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對象。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對象。
示例
下面是一個演示如何將字典保存為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
的文件。
下面是一個演示如何從JSON格式的文件中讀取數(shù)據(jù)并轉(zhuǎn)換為Python對象的示例代碼:
import json with open("data.json", "r") as f: data = json.load(f) print(data)
上述代碼將從名為data.json
的文件中讀取數(shù)據(jù),并將其轉(zhuǎn)換為Python對象。
總結(jié)
本文介紹了如何使用Python的json
模塊讀寫JSON文件。在Python中,我們可以使用json.dump()
和json.load()
函數(shù)將Python對象以JSON格式保存到文件中和從JSON格式的文件中讀取數(shù)據(jù)并轉(zhuǎn)換為Python對象。JSON是一種輕量級的數(shù)據(jù)交換格式,易于閱讀和編寫,因此在網(wǎng)絡(luò)API和文件交換等場景中得到了廣泛的應(yīng)用。
到此這篇關(guān)于Python文件操作和異常處理的方法和技巧的文章就介紹到這了,更多相關(guān)Python文件操作和異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python os.listdir與os.walk實現(xiàn)獲取路徑詳解
這篇文章主要介紹了Python使用os.listdir和os.walk獲取文件路徑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-10-10python機器學習之神經(jīng)網(wǎng)絡(luò)(一)
這篇文章主要為大家詳細介紹了python機器學習之神經(jīng)網(wǎng)絡(luò)第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12