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

正確的使用Python臨時文件

 更新時間:2021年03月26日 15:42:01   作者:技術(shù)火炬手  
這篇文章主要介紹了正確的使用Python臨時文件,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

1、前言

臨時文件通常用來保存無法保存在內(nèi)存中的數(shù)據(jù),或者傳遞給必須從文件讀取的外部程序。一般我們會在/tmp目錄下生成唯一的文件名,但是安全的創(chuàng)建臨時文件并不是那么簡單,需要遵守許多規(guī)則。永遠(yuǎn)不要自己去嘗試做這件事,而是要借助庫函數(shù)實現(xiàn)。而且也要小心清理臨時文件。

臨時文件引起的最大問題就是,可以預(yù)測文件名,導(dǎo)致惡意用戶可以預(yù)測臨時文件名,從而創(chuàng)建軟鏈接劫持臨時文件。

2. tempfile模塊介紹

創(chuàng)建臨時文件一般使用的模塊就是tempfile,此模塊庫函數(shù)常用的有以下幾個:

tempfile.mktemp # 不安全,禁止使用
tempfile.mkstemp # 隨機(jī)創(chuàng)建tmp文件,默認(rèn)創(chuàng)建的文件在/tmp目錄,當(dāng)然也可以指定(可以使用)
tempfile.TemporaryFile # 內(nèi)存中創(chuàng)建文件,文件不會存儲在磁盤,關(guān)閉后即刪除(可以使用)
tempfile.NamedTemporaryFile(delete=True) 當(dāng)delete=True時,作用跟上面一樣,當(dāng)是False時,會存儲在磁盤(可以使用)

3. 示例介紹

以下幾種方式分別介紹了安全的創(chuàng)建臨時文件及不安全的方式。

3.1 不正確示例:

不正確1:

import os
import tempfile
 
# This will most certainly put you at risk
tmp = os.path.join(tempfile.gettempdir(), filename)
if not os.path.exists(tmp):
 with open(tmp, "w") file:
  file.write("defaults")

不正確2:

import os
import tempfile
 
open(tempfile.mktemp(), "w")

不正確3:

filename = "{}/{}.tmp".format(tempfile.gettempdir(), os.getpid())
open(filename, "w")

3.2 正確示例

正確1:

fd, path = tempfile.mkstemp()
try:
 with os.fdopen(fd, 'w') as tmp:
  # do stuff with temp file
  tmp.write('stuff')
finally:
 os.remove(path)

正確2:

# 句柄關(guān)閉,文件即刪除
with tempfile.TemporaryFile() as tmp:
 # Do stuff with tmp
 tmp.write('stuff')

正確3:

tmp = tempfile.NamedTemporaryFile(delete=True)
try:
 # do stuff with temp
 tmp.write('stuff')
finally:
 tmp.close() # 文件關(guān)閉即刪除

以上就是正確的使用Python臨時文件的詳細(xì)內(nèi)容,更多關(guān)于使用Python臨時文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Starship定制shell提示符實現(xiàn)信息自由

    Starship定制shell提示符實現(xiàn)信息自由

    這篇文章主要介紹了Starship定制shell提示符的實現(xiàn),讓你需要的所有信息觸手可及,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法

    python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法

    今天小編就為大家分享一篇python pexpect ssh 遠(yuǎn)程登錄服務(wù)器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python中的PywebIO模塊制作一個數(shù)據(jù)大屏

    python中的PywebIO模塊制作一個數(shù)據(jù)大屏

    這篇文章主要介紹了python中的PywebIO模塊制作一個數(shù)據(jù)大屏,一個制作數(shù)據(jù)大屏的工具,非常的好用,100行的Python代碼就可以制作出來一個完整的數(shù)據(jù)大屏,并且代碼的邏輯非常容易理解,需要的朋友可以參考一下
    2022-03-03
  • python drf各類組件的用法和作用

    python drf各類組件的用法和作用

    這篇文章主要介紹了python drf各類組件的用法和作用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2021-01-01
  • python之PyQt按鈕右鍵菜單功能的實現(xiàn)代碼

    python之PyQt按鈕右鍵菜單功能的實現(xiàn)代碼

    這篇文章主要介紹了python PyQt按鈕右鍵菜單功能的實現(xiàn)代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • python 實現(xiàn)A*算法的示例代碼

    python 實現(xiàn)A*算法的示例代碼

    本篇文章主要介紹了python 實現(xiàn)A*算法的示例代碼,A*作為最常用的路徑搜索算法,值得我們?nèi)ド羁痰难芯浚哂幸欢ǖ膮⒖純r值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python實現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換

    Python實現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換

    PDF是數(shù)據(jù)文檔管理領(lǐng)域常用格式之一,主要用于存儲和共享包含文本、圖像、表格、鏈接等的復(fù)雜文檔,而TIFF常見于圖像處理領(lǐng)域, 在實際應(yīng)用中,我們可能有時需要將PDF文件轉(zhuǎn)換為TIFF圖像,本文將介紹如何使用Python實現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換,需要的朋友可以參考下
    2024-07-07
  • NumPy實現(xiàn)ndarray多維數(shù)組操作

    NumPy實現(xiàn)ndarray多維數(shù)組操作

    NumPy一個非常重要的作用就是可以進(jìn)行多維數(shù)組的操作,這篇文章主要介紹了NumPy實現(xiàn)ndarray多維數(shù)組操作,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • pytorch_detach 切斷網(wǎng)絡(luò)反傳方式

    pytorch_detach 切斷網(wǎng)絡(luò)反傳方式

    這篇文章主要介紹了pytorch_detach 切斷網(wǎng)絡(luò)反傳方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • python協(xié)程之yield和yield?from實例詳解

    python協(xié)程之yield和yield?from實例詳解

    Python在并發(fā)處理上不僅提供了多進(jìn)程和多線程的處理,還包括了協(xié)程,下面這篇文章主要給大家介紹了關(guān)于python協(xié)程之yield和yield?from的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12

最新評論

长垣县| 平南县| 桑植县| 万载县| 阿勒泰市| 宁都县| 三穗县| 神农架林区| 车险| 黑水县| 微山县| 潞城市| 铜鼓县| 靖远县| 辽中县| 贵溪市| 循化| 田林县| 左贡县| 正宁县| 和林格尔县| 连平县| 溆浦县| 沂源县| 民乐县| 淮阳县| 涞水县| 万宁市| 沁水县| 云阳县| 胶南市| 会泽县| 遵义市| 尼玛县| 清徐县| 阳朔县| 沙河市| 科技| 昭觉县| 兴文县| 湖南省|