python 臨時檔案夾 的 tempfile模組學習

來源:互聯網
上載者:User
應用程式經常要儲存一些臨時的資訊,這些資訊不是特別重要,沒有必要寫在設定檔 裡,但又不能沒有,這時候就可以把這些資訊寫到臨時檔案裡。其實很 多程式在啟動並執行時候,都會產生一大堆臨時檔案,有些用於儲存日誌,有些用於儲存一些臨時資料,還有一些儲存一些無關緊要的設定。在windows作業系統 中,臨時檔案一般被儲存在這個檔案夾下:C:\Documents
and Settings\User\Local Settings\Temp。其實我們最常用的IE瀏覽器在瀏覽網頁的時候,會產生大量的臨時檔案,這些臨時檔案一般是我們瀏覽過的網頁的本機複本。 Python提供了一個tempfile模組,用來對臨時資料進行操作。查閱Python手冊,裡面介紹了如下常用的方法:tempfile.mkstemp([suffix=''[, prefix='tmp'[, dir=None[, text=False]]]])

    mkstemp方法用於建立一個臨時檔案。該方法僅僅用於建立臨時檔案, 調用tempfile.mkstemp函數後,返回包含兩個元素的元組,第一個元素指示操作該臨時檔案的安全層級,第二個元素指示該臨時檔案的路徑。參數 suffix和prefix分別表示臨時檔案名稱的尾碼和首碼;dir指定了臨時檔案所在的目錄,如果沒有指定目錄,將根據系統內容變數TMPDIR, TEMP或者TMP的設定來儲存臨時檔案;參數text指定了是否以文本的形式來操作檔案,預設為False,表示以二進位的形式來操作檔案。

tempfile.mkdtemp([suffix=''[, prefix='tmp'[, dir=None]]])

    該函數用於建立一個臨時檔案夾。參數的意思與tempfile.mkdtemp一樣。它返回臨時檔案夾的絕對路徑。

tempfile.mktemp([suffix=''[, prefix='tmp'[, dir=None]]])

    mktemp用於返回一個臨時檔案的路徑,但並不建立該臨時檔案。

tempfile.tempdir

    該屬性用於指定建立的臨時檔案(夾)所在的預設資料夾。如果沒有設定該屬性或者將其設為None,Python將返回以下環境變數TMPDIR, TEMP, TEMP指定的目錄,如果沒有定義這些環境變數,臨時檔案將被建立在當前工作目錄。

tempfile.gettempdir()

    gettempdir()則用於返回儲存臨時檔案的檔案夾路徑。

tempfile.TemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]])

    該函數返回一個 類檔案 對象(file-like)用於臨時資料儲存(實際上對應磁碟上的一個臨時檔案)。當檔案對象被close或者被del的時候,臨時檔案將從磁碟上刪除。 mode、bufsize參數的單方與open()函數一樣;suffix和prefix指定了臨時檔案名稱的尾碼和首碼;dir用於設定臨時檔案預設的保 存路徑。返回的類檔案對象有一個file屬性,它指向真正操作的底層的file對象。

tempfile.NamedTemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None[, delete=True]]]]]])

    tempfile.NamedTemporaryFile函數的行為與tempfile.TemporaryFile類似,只不過它多了一個delete 參數,用於指定類檔案對象close或者被del之後,是否也一同刪除磁碟上的臨時檔案(當delete = True的時候,行為與TemporaryFile一樣)。

tempfile.SpooledTemporaryFile([max_size=0[, mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]]])

    tempfile.SpooledTemporaryFile函數的行為與tempfile.TemporaryFile類似。不同的是向類檔案對象寫數 據的時候,資料長度只有到達參數max_size指定大小時,或者調用類檔案對象的fileno()方法,資料才會真正寫入到磁碟的臨時檔案中。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.