日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 如何判断一个函数执行完成_三步搞定 Python 中的文件操作

發(fā)布時間:2024/9/27 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 如何判断一个函数执行完成_三步搞定 Python 中的文件操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當程序運行時,變量是保存數(shù)據(jù)的好方法,但變量、序列以及對象中存儲的數(shù)據(jù)是暫時的,程序結(jié)束后就會丟失,如果希望程序結(jié)束后數(shù)據(jù)仍然保持,就需要將數(shù)據(jù)保存到文件中。

Python 提供了內(nèi)置的文件對象,以及對文件、目錄進行操作的內(nèi)置模塊,通過這些技術(shù)可以很方便地將數(shù)據(jù)保存到文件(如文本文件等)中。

一、文件的概念

在計算機中,文件是以二進制的方式保存在磁盤上的。

文件分為文本文件和二進制文件。

1、文本文件

可以使用文本編輯軟件查看,本質(zhì)上還是二進制文件,例如:python 的源程序。

2、二進制文件

保存的內(nèi)容不是給人直接閱讀的,而是提供給其他軟件使用的。例如:圖片文件、音頻文件、視頻文件等等,二進制文件不能使用文本編輯軟件查看。

Python 中,對文件的操作有很多種,常見的操作包括創(chuàng)建、刪除、修改權(quán)限、讀取、寫入等,這些操作可大致分為以下 2 類:

  • 刪除、修改權(quán)限:作用于文件本身,屬于系統(tǒng)級操作。
  • 寫入、讀取:是文件最常用的操作,作用于文件的內(nèi)容,屬于應(yīng)用級操作。

二、文件的基本操作

1、操作文件的步驟

文件的應(yīng)用級操作可以分為以下 3 步,每一步都需要借助對應(yīng)的函數(shù)實現(xiàn):

  • 打開文件:使用 open() 函數(shù),該函數(shù)會返回一個文件對象;
  • 對已打開文件做讀/寫操作:讀取文件內(nèi)容可使用 read()、readline() 以及 readlines() 函數(shù);向文件中寫入內(nèi)容,可以使用 write() 函數(shù)。
  • 關(guān)閉文件:完成對文件的讀/寫操作之后,最后需要關(guān)閉文件,可以使用 close() 函數(shù)。
  • 2、打開文件的方式

    在 Python 中,如果想要操作文件,首先需要創(chuàng)建或者打開指定的文件,并創(chuàng)建一個文件對象,而這些工作可以通過內(nèi)置的 open() 函數(shù)實現(xiàn)。

    語法如下:

    file
    • file:表示要創(chuàng)建的文件對象。
    • file_name:要創(chuàng)建或打開文件的文件名稱。
    • mode:用于指定文件的打開模式。默認以只讀(r)模式打開文件。
    • buffering:用于指定對文件做讀寫操作時,是否使用緩沖區(qū)。
    • encoding:手動設(shè)定打開文件時所使用的編碼格式,不同平臺的 ecoding 參數(shù)值也不同,以 Windows 為例,其默認為 cp936(實際上就是 GBK 編碼)。

    打開文件的常用模式

    模式說明
    以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式。如果文件不存在,拋出異常
    w以只寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創(chuàng)建新文件
    a以追加方式打開文件。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果文件不存在,創(chuàng)建新文件進行寫入
    r+以讀寫方式打開文件。文件的指針將會放在文件的開頭。如果文件不存在,拋出異常
    w+以讀寫方式打開文件。如果文件存在會被覆蓋。如果文件不存在,創(chuàng)建新文件
    a+以讀寫方式打開文件。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果文件不存在,創(chuàng)建新文件進行寫入

    open()是否需要緩沖區(qū)

    通常情況下、建議大家在使用 open() 函數(shù)時打開緩沖區(qū),即不需要修改 buffing 參數(shù)的值。

    如果 buffing 參數(shù)的值為 0(或者 False),則表示在打開指定文件時不使用緩沖區(qū);如果 buffing 參數(shù)值為大于 1 的整數(shù),該整數(shù)用于指定緩沖區(qū)的大小(單位是字節(jié));如果 buffing 參數(shù)的值為負數(shù),則代表使用默認的緩沖區(qū)大小。

    目前為止計算機內(nèi)存的 I/O 速度仍遠遠高于計算機外設(shè)(例如鍵盤、鼠標、硬盤等)的 I/O 速度,如果不使用緩沖區(qū),則程序在執(zhí)行 I/O 操作時,內(nèi)存和外設(shè)就必須進行同步讀寫操作,也就是說,內(nèi)存必須等待外設(shè)輸入(輸出)一個字節(jié)之后,才能再次輸出(輸入)一個字節(jié)。這意味著,內(nèi)存中的程序大部分時間都處于等待狀態(tài)。

    而如果使用緩沖區(qū),則程序在執(zhí)行輸出操作時,會先將所有數(shù)據(jù)都輸出到緩沖區(qū)中,然后繼續(xù)執(zhí)行其它操作,緩沖區(qū)中的數(shù)據(jù)會有外設(shè)自行讀取處理;同樣,當程序執(zhí)行輸入操作時,會先等外設(shè)將數(shù)據(jù)讀入緩沖區(qū)中,無需同外設(shè)做同步讀寫操作。

    3、read 方法 —— 讀取文件

    read 方法可以一次性讀入并返回文件的所有內(nèi)容。

    read() 函數(shù)的基本語法格式如下:

    file

    其中,file 表示已打開的文件對象;size 作為一個可選參數(shù),用于指定一次最多可讀取的字符(字節(jié))個數(shù),如果省略,則默認一次性讀取所有內(nèi)容。

    如果忘記關(guān)閉文件,會造成系統(tǒng)資源消耗,而且會影響到后續(xù)對文件的訪問。

    注意:read 方法執(zhí)行后,會把文件指針移動到文件的末尾。

    示例:

    # 1. 打開 - 文件名需要注意大小寫

    在開發(fā)中,通常會先編寫打開和關(guān)閉的代碼,再編寫中間針對文件的讀/寫操作!

    4、按行讀取文件內(nèi)容

    read 方法默認會把文件的所有內(nèi)容一次性讀取到內(nèi)存。

    如果文件太大,對內(nèi)存的占用會非常嚴重。

    readline 方法可以一次讀取一行內(nèi)容,包含最后的換行符“n”。方法執(zhí)行后,會把文件指針移動到下一行,準備再次讀取。

    file

    其中,file 為打開的文件對象;size 為可選參數(shù),用于指定讀取每一行時,一次最多讀取的字符(字節(jié))數(shù)。

    讀取大文件的正確姿勢

    # 打開文件

    示例:

    小文件復制

    # 1. 打開文件

    大文件復制

    # 1. 打開文件

    對于按行來讀取文件,還有一個 readlines() 函數(shù)。

    readlines() 函數(shù)用于讀取文件中的所有行,它和調(diào)用不指定 size 參數(shù)的 read() 函數(shù)類似,只不過該函數(shù)返回是一個字符串列表,其中每個元素為文件中的一行內(nèi)容。

    和 readline() 函數(shù)一樣,readlines() 函數(shù)在讀取每一行時,會連同行尾的換行符一塊讀取。

    5、文件指針

    文件指針可以理解為一個標記,它標記從哪個位置開始讀取數(shù)據(jù)。

    第一次打開文件時,通常文件指針會指向文件的開始位置,當執(zhí)行了 read 方法后,文件指針默認情況下會移動到讀取內(nèi)容的末尾。

    如果執(zhí)行了一次 read 方法,讀取了所有內(nèi)容,那么再次調(diào)用 read 方法,還能夠獲得到內(nèi)容嗎?

    答案是不能,第一次讀取之后,文件指針移動到了文件末尾,再次調(diào)用不會讀取到任何的內(nèi)容。

    # 首先在 README 文件中寫了8個1

    6、向文件中寫入數(shù)據(jù)

    Python 中的文件對象提供了 write() 函數(shù),可以向文件中寫入指定內(nèi)容。該函數(shù)的語法格式如下:

    file

    在寫入文件完成后,一定要調(diào)用 close() 函數(shù)將打開的文件關(guān)閉,否則寫入的內(nèi)容不會保存到文件中。

    這是因為,當我們在寫入文件內(nèi)容時,操作系統(tǒng)不會立刻把數(shù)據(jù)寫入磁盤,而是先緩存起來,只有調(diào)用 close() 函數(shù)時,操作系統(tǒng)才會保證把沒有寫入的數(shù)據(jù)全部寫入磁盤文件中。

    寫入文件示例:

    # 打開文件

    如果向文件寫入數(shù)據(jù)后,不想馬上關(guān)閉文件,也可以調(diào)用文件對象提供的 flush() 函數(shù),它可以實現(xiàn)將緩沖區(qū)的數(shù)據(jù)寫入文件中。

    f

    三、文件/目錄的常用管理操作

    在終端 / 文件瀏覽器中可以執(zhí)行常規(guī)的文件 / 目錄管理操作,例如:創(chuàng)建、重命名、刪除、改變路徑、查看目錄內(nèi)容等等。

    在 Python 中,如果希望通過程序?qū)崿F(xiàn)上述功能,需要導入 os 模塊。

    1、文件操作

    方法名說明示例
    rename重命名文件os.rename(源文件名, 目標文件名)
    remove刪除文件os.remove(文件名)

    2、目錄操作

    方法名說明示例
    listdir目錄列表os.listdir(目錄名)
    mkdir創(chuàng)建目錄os.mkdir(目錄名)
    rmdir刪除目錄os.rmdir(目錄名)
    getcwd獲取當前目錄os.getcwd()
    chdir修改工作目錄os.chdir(目標目錄)
    path.isdir判斷是否是文件os.path.isdir(文件路徑)

    文件或者目錄的操作都支持相對路徑和絕對路徑。


    總結(jié)

    以上是生活随笔為你收集整理的python 如何判断一个函数执行完成_三步搞定 Python 中的文件操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。