欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python文件操作和異常處理的方法和技巧

 更新時(shí)間:2023年05月06日 09:05:25   作者:互聯(lián)小助手  
本文介紹了Python文件操作和異常處理的方法和技巧,包括讀寫(xiě)文本文件、讀寫(xiě)二進(jìn)制文件、文件指針、異常類(lèi)型和處理、try-except語(yǔ)句、異常處理程序等內(nèi)容,幫助讀者更好地掌握Python在文件操作和異常處理方面的應(yīng)用

Python文件操作和異常處理

Python作為一門(mén)高級(jí)編程語(yǔ)言,為我們提供了豐富的文件操作和異常處理機(jī)制。在本文中,我們將從以下幾個(gè)方面討論P(yáng)ython文件操作和異常處理的相關(guān)知識(shí):

  • 文本文件和二進(jìn)制文件的讀寫(xiě)
  • JSON文件的讀寫(xiě)
  • 異常處理機(jī)制

文本文件和二進(jìn)制文件的讀寫(xiě)

Python可以輕松地讀寫(xiě)文本文件和二進(jìn)制文件,我們可以使用內(nèi)置的open()函數(shù)來(lái)打開(kāi)文件并獲取文件對(duì)象,從而進(jìn)行讀寫(xiě)操作。下面是一些常用的open()函數(shù)的參數(shù):

  • file:文件名稱(chēng)和路徑
  • mode:打開(kāi)文件的模式(讀、寫(xiě)、追加等)
  • buffering:指定讀寫(xiě)過(guò)程中的緩存大小
  • encoding:指定編碼格式(對(duì)于文本文件)

讀寫(xiě)文本文件

在Python中,讀寫(xiě)文本文件非常容易。我們可以使用open()函數(shù)打開(kāi)文件,然后使用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)向文件中寫(xiě)入文本內(nèi)容。例如:

with open('file.txt', 'w') as f:
    f.write('Hello, world!\\n')
    f.write('This is a test file.')

在上面的例子中,我們使用write()方法向文件中寫(xiě)入了兩行文本內(nèi)容。

讀寫(xiě)二進(jìn)制文件

要讀寫(xiě)二進(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ú)法打開(kāi).')
    except IOError as e:
        print('讀寫(xiě)文件時(shí)出現(xiàn)錯(cuò)誤.')
    print('程序執(zhí)行結(jié)束.')
if __name__ == '__main__':
    main()

在上面的例子中,我們使用open()函數(shù)讀取了一張圖片,然后使用read()方法將圖片數(shù)據(jù)讀入到內(nèi)存中,最后使用open()函數(shù)將圖片數(shù)據(jù)寫(xiě)入到了另一個(gè)二進(jìn)制文件中。

讀寫(xiě)JSON文件

在Python中,我們可以將字典、列表等數(shù)據(jù)以JSON格式保存到文件中。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫(xiě)。本文將介紹如何使用Python的json模塊讀寫(xiě)JSON文件。

JSON簡(jiǎn)介

JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它是基于JavaScript語(yǔ)言的一個(gè)子集,但是它采用了類(lèi)似于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模塊讀寫(xiě)JSON文件。在Python中,我們可以使用json.dump()json.load()函數(shù)將Python對(duì)象以JSON格式保存到文件中和從JSON格式的文件中讀取數(shù)據(jù)并轉(zhuǎn)換為Python對(duì)象。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫(xiě),因此在網(wǎng)絡(luò)API和文件交換等場(chǎng)景中得到了廣泛的應(yīng)用。

到此這篇關(guān)于Python文件操作和異常處理的方法和技巧的文章就介紹到這了,更多相關(guān)Python文件操作和異常處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?文檔解析lxml庫(kù)的使用詳解

    Python?文檔解析lxml庫(kù)的使用詳解

    lxml 是 Python 常用的文檔解析庫(kù),能夠高效地解析 HTML/XML 文檔,常用于 Python 爬蟲(chóng),這篇文章主要介紹了Python?文檔解析:lxml庫(kù)的使用,需要的朋友可以參考下
    2022-09-09
  • python中dict()的高級(jí)用法實(shí)現(xiàn)

    python中dict()的高級(jí)用法實(shí)現(xiàn)

    這篇文章主要介紹了python中dict()的高級(jí)用法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python繪圖系統(tǒng)之繪制散點(diǎn)圖,極坐標(biāo)和子圖

    Python繪圖系統(tǒng)之繪制散點(diǎn)圖,極坐標(biāo)和子圖

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一個(gè)繪圖系統(tǒng),可以支持繪制散點(diǎn)圖,極坐標(biāo)和子圖,文中的示例代碼講解詳細(xì),感興趣的可以了解下
    2023-09-09
  • 如何使用Python逆向抓取APP數(shù)據(jù)

    如何使用Python逆向抓取APP數(shù)據(jù)

    今天給大伙分享一下 Python 爬蟲(chóng)的教程,這次主要涉及到的是關(guān)于某 APP 的逆向分析并抓取數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Python os.listdir與os.walk實(shí)現(xiàn)獲取路徑詳解

    Python os.listdir與os.walk實(shí)現(xiàn)獲取路徑詳解

    這篇文章主要介紹了Python使用os.listdir和os.walk獲取文件路徑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-10-10
  • python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(一)

    python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)(一)

    這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)第一篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python星號(hào)*與**用法分析

    Python星號(hào)*與**用法分析

    這篇文章主要介紹了Python星號(hào)*與**用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python中的星號(hào)*與**在函數(shù)參數(shù)及數(shù)值運(yùn)算中的相關(guān)使用技巧,需要的朋友可以參考下
    2018-02-02
  • python3檢查字典傳入函數(shù)鍵是否齊全的實(shí)例

    python3檢查字典傳入函數(shù)鍵是否齊全的實(shí)例

    這篇文章主要介紹了python3檢查字典傳入函數(shù)鍵是否齊全的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • django admin 添加自定義鏈接方式

    django admin 添加自定義鏈接方式

    這篇文章主要介紹了django admin 添加自定義鏈接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python通過(guò)Pillow實(shí)現(xiàn)圖片對(duì)比

    Python通過(guò)Pillow實(shí)現(xiàn)圖片對(duì)比

    這篇文章主要介紹了Python Pillow實(shí)現(xiàn)圖片對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論