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

Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

 更新時間:2019年10月17日 09:12:20   作者:houyanhua1  
這篇文章主要介紹了Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作,結(jié)合實例形式分析了Python使用with關(guān)鍵字及上下文管理器、contextmanager進行文件打開、讀寫、關(guān)閉等操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作。分享給大家供大家參考,具體如下:

demo.py(with 打開文件):

# open 方法的返回值賦值給變量 f,當離開 with 代碼塊的時候,系統(tǒng)會自動調(diào)用 f.close() 方法
# with 的作用和使用 try/finally 語句是一樣的。
with open("output.txt", "r") as f:
  f.write("XXXXX")

demo.py(with,上下文管理器):

# 自定義的MyFile類
# 實現(xiàn)了 __enter__() 和 __exit__() 方法的對象都可稱之為上下文管理器
class MyFile():
  def __init__(self, filename, mode):
    self.filename = filename
    self.mode = mode
  def __enter__(self):
    print("entering")
    self.f = open(self.filename, self.mode)
    return self.f
  # with代碼塊執(zhí)行完或者with中發(fā)生異常,就會自動執(zhí)行__exit__方法。
  def __exit__(self, *args):
    print("will exit")
    self.f.close()
# 會自動調(diào)用MyFile對象的__enter__方法,并將返回值賦給f變量。
with MyFile('out.txt', 'w') as f:
  print("writing")
  f.write('hello, python')
  # 當with代碼塊執(zhí)行結(jié)束,或出現(xiàn)異常時,會自動調(diào)用MyFile對象的__exit__方法。
 

demo.py(實現(xiàn)上下文管理器的另一種方式):

from contextlib import contextmanager
@contextmanager
def my_open(path, mode):
  f = open(path, mode)
  yield f
  f.close()
# 將my_open函數(shù)中yield后的變量值賦給f變量。
with my_open('out.txt', 'w') as f:
  f.write("XXXXX")
  # 當with代碼塊執(zhí)行結(jié)束,或出現(xiàn)異常時,會自動執(zhí)行yield后的代碼。

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • OpenCV物體跟蹤樹莓派視覺小車實現(xiàn)過程學(xué)習(xí)

    OpenCV物體跟蹤樹莓派視覺小車實現(xiàn)過程學(xué)習(xí)

    這篇文章主要介紹了OpenCV物體跟蹤樹莓派視覺小車的實現(xiàn)過程學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • TensorFlow實現(xiàn)簡單的CNN的方法

    TensorFlow實現(xiàn)簡單的CNN的方法

    這篇文章主要介紹了TensorFlow實現(xiàn)簡單的CNN的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python循環(huán)語句For?Range用法示例詳解

    Python循環(huán)語句For?Range用法示例詳解

    這篇文章主要為大家介紹了Python循環(huán)語句For?Range用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • python三種數(shù)據(jù)標準化方式

    python三種數(shù)據(jù)標準化方式

    這篇文章主要介紹了python三種數(shù)據(jù)標準化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Python實現(xiàn)爬蟲爬取NBA數(shù)據(jù)功能示例

    Python實現(xiàn)爬蟲爬取NBA數(shù)據(jù)功能示例

    這篇文章主要介紹了Python實現(xiàn)爬蟲爬取NBA數(shù)據(jù)功能,涉及Python針對URL模塊、字符串、列表遍歷、Excel寫入等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • python進行圖像邊緣檢測的詳細教程

    python進行圖像邊緣檢測的詳細教程

    相信大家對于邊緣檢測這幾個詞并不陌生,但是相對于如何處理,如何進行圖像的邊緣檢測卻無能為力、束手無策了,下面這篇文章主要給大家介紹了關(guān)于python進行圖像邊緣檢測的詳細教程,需要的朋友可以參考下
    2023-04-04
  • 一步步解析Python斗牛游戲的概率

    一步步解析Python斗牛游戲的概率

    這篇文章主要帶著大家一步步解析Python斗牛游戲的概率,計算出斗牛游戲的概率,感興趣的朋友可以參考一下
    2016-02-02
  • python屬于跨平臺語言碼

    python屬于跨平臺語言碼

    在本篇文章里小編給大家整理的是關(guān)于python是否跨平臺的相關(guān)知識點文章,有興趣的朋友們可以參考下。
    2020-06-06
  • 利用Python語言的grpc實現(xiàn)消息傳送詳解

    利用Python語言的grpc實現(xiàn)消息傳送詳解

    gRPC是一個高性能、通用的開源RPC框架,其由Google主要面向移動應(yīng)用開發(fā)并基于HTTP/2協(xié)議標準而設(shè)計。本文主要介紹了如何利用Python語言的grpc實現(xiàn)消息傳送,感興趣的可以了解一下
    2023-03-03
  • Python 時間戳之獲取整點凌晨時間戳的操作方法

    Python 時間戳之獲取整點凌晨時間戳的操作方法

    這篇文章主要介紹了Python 時間戳之獲取整點凌晨時間戳的操作方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-01-01

最新評論