最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python文件讀寫操作詳解

 更新時(shí)間:2025年06月12日 08:37:01   作者:程序小武  
在?Python?中,文件操作非常常見,可以通過內(nèi)建的?open()?函數(shù)進(jìn)行文件的讀取、寫入、創(chuàng)建等操作,理解文件操作的模式和?with?語句對于確保代碼的簡潔性和效率至關(guān)重要,本文給大家從基礎(chǔ)到實(shí)戰(zhàn)詳細(xì)介紹了Python文件的讀寫操作,需要的朋友可以參考下

Python 文件的讀寫操作

1. 打開文件 open()

在 Python 中,文件操作的基本函數(shù)是 open(),它用于打開一個(gè)文件并返回一個(gè)文件對象,通過該對象可以對文件進(jìn)行讀取和寫入操作。open()函數(shù)有兩個(gè)常用參數(shù):

  • file:表示文件的路徑,可以是相對路徑或絕對路徑。
  • mode:表示文件打開的模式,決定了文件的操作方式。
  • 語法
open(file, mode)

1.1 常見的打開模式

模式說明
r只讀模式(默認(rèn))。文件必須存在,否則拋出 FileNotFoundError。
w寫模式。文件如果存在則覆蓋,不存在則創(chuàng)建新文件。
a追加模式。文件若存在,則在文件末尾追加內(nèi)容;若文件不存在,創(chuàng)建新文件。
x排他性創(chuàng)建模式。若文件已存在,拋出 FileExistsError。
b二進(jìn)制模式,用于處理非文本文件,如圖片等。
t文本模式(默認(rèn))。用于讀取或?qū)懭胛谋疚募?/td>
r+讀寫模式。文件必須存在,可以同時(shí)進(jìn)行讀取和寫入。
w+寫讀模式。文件如果存在會被覆蓋,不存在則創(chuàng)建新文件。
a+追加讀寫模式??梢宰x寫文件,文件若不存在則創(chuàng)建新文件。

1.2 示例

假如example.txt的文件內(nèi)容為:hello world為舉例

# 只讀模式打開文件
file = open('example.txt', 'r')
print(file) 
print(file.read())  #會輸出example.txt的文件內(nèi)容
file.close() #關(guān)閉文件

輸出:

<_io.TextIOWrapper name='example.txt' mode='r' encoding='cp65001'>
hello world

1.3 代碼及輸出解釋:

  • open('example.txt', 'r'):打開了一個(gè)名為 example.txt 的文件,以只讀模式 ('r') 打開
  • file.read():在file對象上調(diào)用 read() 方法,用于讀取文件的所有內(nèi)容
  • file.close()在file對象上調(diào)用 close() 方法,用于關(guān)閉文件,是為了確保資源被釋放
  • <_io.TextIOWrapper ...>TextIOWrapper 是 Python 內(nèi)部用于處理文本文件的類
  • name='example.txt' :這是文件對象的名稱,表示文件路徑。
  • mode='r' :以只讀模式r打開文件(即只能讀取文件內(nèi)容,不能修改)。
  • encoding='cp65001' :這是文件的編碼方式為cp65001cp65001 是 UTF-8 編碼的一個(gè)別名)

2. 使用 with 語句

with 語句提供了一個(gè)更簡潔的方式來管理文件資源。使用 with 語句時(shí),Python 會自動(dòng)管理文件的打開和關(guān)閉。無論文件操作是否成功,文件都會在操作結(jié)束后自動(dòng)關(guān)閉。

2.1 with 語句的優(yōu)點(diǎn)

  • 自動(dòng)管理資源,避免忘記關(guān)閉文件。
  • 即使發(fā)生異常,也能保證文件被正確關(guān)閉。
  • 代碼更簡潔。

語法:

with open('文件路徑', '模式') as 打開后賦值的變量名:
    空四格(寫打開文件后進(jìn)行的操作代碼)

2.2 示例

with open('example.txt', 'r') as file:
    content = file.read()
    print(content) #輸出hello world
  • as file:文件對象賦值給變量 file ;可以理解為使用open函數(shù)這樣寫:
file=open('example.txt', 'r')
  • 在上面的例子中,文件在 with 語句結(jié)束后會自動(dòng)關(guān)閉文件。

3. 讀取文件內(nèi)容

Python 提供了幾種方法來讀取文件內(nèi)容:

  • read():讀取整個(gè)文件的內(nèi)容,返回一個(gè)字符串。
  • readline():逐行讀取文件,每次返回一行內(nèi)容。
  • readlines():讀取文件的所有行并返回一個(gè)列表。
  • 假設(shè)example.txt的文件內(nèi)容為:
hello wrold
hello wrold
hello wrold
hello wrold
hello wrold

3.1 read() 示例 返回全部內(nèi)容

with open('example.txt', 'r') as file:
    content = file.read()  # 讀取整個(gè)文件
    print(content)

輸出示例:

hello wrold
hello wrold
hello wrold
hello wrold
hello wrold

3.2 readline() 示例 每次返回第一行內(nèi)容

with open('example.txt', 'r') as file:
    line = file.readline()  # 讀取第一行
    print(line)

輸出示例:

hello wrold

3.3 readlines() 示例 以列表的形式返回全部數(shù)據(jù)

with open('example.txt', 'r') as file:
    lines = file.readlines()  # 讀取所有行,返回一個(gè)列表
    print(lines)

輸出示例:

['hello wrold\n', 'hello wrold\n', 'hello wrold\n', 'hello wrold\n', 'hello wrold']

4. 寫入文件

文件的寫入操作使用 write()writelines() 方法:

  • write():將字符串寫入文件,如果文件存在則覆蓋。
  • writelines():將字符串列表寫入文件,只能字符串類型的數(shù)據(jù)列表,否則報(bào)錯(cuò)

4.1 write() 示例 將字符串寫入文件

with open('output.txt', 'w') as file:  #w模式文件如果存在則覆蓋,不存在則創(chuàng)建新文件
    file.write('Hello, Python!')

output.txt文件內(nèi)容:

Hello, Python!

4.2 writelines() 示例 將字符串列表寫入文件

lines = ['Hello, Python!\n', 'This is another line.\n']

with open('output.txt', 'w') as file:
    file.writelines(lines)

output.txt文件內(nèi)容(因添加\n故而換行):

Hello, Python!
This is another line.

4.3 追加寫入

with open('output.txt', 'a') as file:
    file.write('Appending a new line.')

output.txt文件內(nèi)容:

Hello, Python!This is another line.
Appending a new line.

PS:如果寫入的內(nèi)容需要換行可以在字符串里面添加\n

開頭添加換行例如:file.write('\nAppending a new line.')

4.4 二進(jìn)制寫模式 wb

  • 含義:以二進(jìn)制模式寫入文件。如果文件存在,內(nèi)容會被覆蓋;如果文件不存在,則創(chuàng)建文件
  • 用途:適用于寫入非文本文件,如圖像、音頻文件等
with open('output.jpg', 'wb') as file:
        file.write(content)  # 將content內(nèi)容以二進(jìn)制形式寫入

4.5 二進(jìn)制追加模式 ab

  • 含義:以二進(jìn)制模式向文件追加內(nèi)容。如文件不存在,會創(chuàng)建文件;反之會添加到文件的末尾
  • 用途:適用于不斷向文件中追加數(shù)據(jù)(二進(jìn)制數(shù)據(jù)等)容易出問題,一般wb即可
with open('output.jpg', 'ab') as file:
        file.write(content)  # 將content新內(nèi)容追加到文件末尾

5. 完整案例:日志文件管理

假設(shè)我們有一個(gè)日志文件,每次程序運(yùn)行時(shí)都會記錄一個(gè)日志條目,記錄程序的執(zhí)行情況。下面是一個(gè)完整的示例:

# 寫入日志
def write_log(log_message):
    with open('logfile.txt', 'a') as log_file:
        log_file.write(log_message + '\n')

# 讀取日志
def read_logs():
    with open('logfile.txt', 'r') as log_file:
        logs = log_file.readlines()
    return logs

# 示例用法
write_log('日志數(shù)據(jù)1')
write_log('日志數(shù)據(jù)2')

# 讀取并顯示日志
logs = read_logs()
print("Logs:")
for log in logs:
    print(log.strip())

解釋:

  • write_log函數(shù):將日志信息追加到 logfile.txt 文件中。
  • read_logs函數(shù):讀取 logfile.txt 中的所有日志,并返回列表。
  • 通過運(yùn)行程序,生成三條日志,并將其打印出來。

總結(jié)

  • 文件操作模式:選擇合適的模式(如 r、wa 等)進(jìn)行文件的讀取或?qū)懭搿?/li>
  • with 語句:提供了簡潔且安全的文件操作方式,自動(dòng)處理文件的關(guān)閉。
  • 文件讀取與寫入:掌握 read()、readline()、write()writelines() 等方法,靈活處理文件內(nèi)容。

通過這些基礎(chǔ)的文件操作,你可以高效地處理文件讀寫任務(wù),同時(shí)確保代碼簡潔且安全。

以上就是Python文件讀寫操作詳解的詳細(xì)內(nèi)容,更多關(guān)于Python文件讀寫操作的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Django1.3添加app提示模塊不存在的解決方法

    Django1.3添加app提示模塊不存在的解決方法

    這篇文章主要介紹了Django1.3添加app提示模塊不存在的解決方法,原因是新版和舊版的APP名稱寫法問題,需要的朋友可以參考下
    2014-08-08
  • Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實(shí)例

    Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實(shí)例

    這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之關(guān)系映射實(shí)例,Classic (經(jīng)典模式)和Modern (現(xiàn)代模式),分別介紹了,需要的朋友可以參考下
    2014-06-06
  • python正則表達(dá)式最詳解

    python正則表達(dá)式最詳解

    篇文章主要介紹了Python中正則表達(dá)式的詳細(xì)解釋,正則表達(dá)式是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2021-11-11
  • 使用Python實(shí)現(xiàn)音頻文件的分布式處理

    使用Python實(shí)現(xiàn)音頻文件的分布式處理

    隨著音頻數(shù)據(jù)量的不斷增長,傳統(tǒng)的單機(jī)處理方式已經(jīng)難以滿足大規(guī)模音頻處理的需求,分布式處理技術(shù)通過將任務(wù)分解并分配到多個(gè)計(jì)算節(jié)點(diǎn)上,可以顯著提高處理速度和效率,本文將深入探討如何使用Python實(shí)現(xiàn)音頻文件的分布式處理,需要的朋友可以參考下
    2025-12-12
  • python datetime 和時(shí)間戳互相轉(zhuǎn)換問題

    python datetime 和時(shí)間戳互相轉(zhuǎn)換問題

    time和datetime都是Python中的內(nèi)置模塊(不需要安裝,直接可以使用),都可以對時(shí)間進(jìn)行獲取,對時(shí)間格式進(jìn)行轉(zhuǎn)換,如時(shí)間戳和時(shí)間字符串的相互轉(zhuǎn)換,本文先給大家介紹python datetime 和時(shí)間戳互轉(zhuǎn)問題,感興趣的朋友一起看看吧
    2022-11-11
  • Python 反轉(zhuǎn)輸出正整數(shù)的操作

    Python 反轉(zhuǎn)輸出正整數(shù)的操作

    這篇文章主要介紹了Python 反轉(zhuǎn)輸出正整數(shù)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python Django的web開發(fā)實(shí)例(入門)

    python Django的web開發(fā)實(shí)例(入門)

    這篇文章主要介紹了python Django的web開發(fā)實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python八大排序算法速度實(shí)例對比

    python八大排序算法速度實(shí)例對比

    這篇文章主要介紹了Python八大排序算法速度實(shí)例對比,具有一定參考價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python入門教程(三十四)Python的文件處理

    Python入門教程(三十四)Python的文件處理

    這篇文章主要介紹了Python入門教程(三十四)Python的文件處理,在Python中處理文件的主要是open()函數(shù),接下來我們就來一起看看open()函數(shù)的用法吧,需要的朋友可以參考下
    2023-05-05
  • Python二次規(guī)劃和線性規(guī)劃使用實(shí)例

    Python二次規(guī)劃和線性規(guī)劃使用實(shí)例

    這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評論

上饶县| 盐城市| 海晏县| 临清市| 凌云县| 漳浦县| 河津市| 宁津县| 连南| 来宾市| 潞城市| 兴和县| 连城县| 阳信县| 吉水县| 凤阳县| 定安县| 铜鼓县| 鄂托克前旗| 达孜县| 紫云| 公主岭市| 册亨县| 荃湾区| 巴彦淖尔市| 科尔| 乌鲁木齐市| 广德县| 平陆县| 华池县| 格尔木市| 唐山市| 手机| 四会市| 从江县| 沈阳市| 西和县| 聊城市| 南华县| 城口县| 哈巴河县|