python中的with
Ⅰ python中with是什麼意思
關鍵字
with 的一般執行過程
一段基本的 with 表達式,其結構是這樣的:
with EXPR as VAR:
BLOCK
其中: EXPR 可以是任意表達式; as VAR 是可選的。
Ⅱ python with函數怎麼用
with在python中並不是函數,是一個關鍵詞語句,比如if就是關鍵詞語句。
with大多用來打開一個文檔。
比如:
with open('test.txt') as f:
f.read()
這樣就可以讀取名為test的文檔里的內容,並且使用with語句不需要我們手動再調用文件的close()方法來關閉文件,如果test.txt文檔對象不再被使用,with會自動關閉文檔。比較智能一點。
Ⅲ python的with語句怎樣嵌套使用
with obj1:
with obj2:
obj1 xxx
obj2 xxx
# 你自己的代碼
這樣就可以了
Ⅳ 為什麼python這個with後面只運行了4、5行後面的代碼都沒有運行啊
讀取文件,返回的是一個句柄(比較老套的說法--!)
python的說法,就是返回一個迭代器,指向的是這個文件的最開始的地方。迭代器裡面有個next方法,你調一次,就返回一次的結果,如果已經結束了,就退出(報異常,內部捕獲處理掉了)。。。你在for裡面調用了「讀取一行」的操作,且循環直到文件讀取結束,所以就在for那步驟里,把整個文件全部都讀完了。後面自然是啥都沒有
Ⅳ python裡面 with open 的問題
f指一個文件對象,就是open函數打開的那個文件返回的對象,它和f盤沒有任何關系。
Ⅵ Python中的with...as用法介紹
這篇文章主要介紹了Python中的with...as用法介紹,本文直接給出用法實例,需要的朋友可以參考下
這個語法是用來代替傳統的try...finally語法的。
代碼如下:
with
EXPRESSION
[
as
VARIABLE]
WITH-BLOCK
基本思想是with所求值的對象必須有一個__enter__()方法,一個__exit__()方法。
緊跟with後面的語句被求值後,返回對象的__enter__()方法被調用,這個方法的返回值將被賦值給as後面的變數。當with後面的代碼塊全部被執行完之後,將調用前面返回對象的__exit__()方法。
代碼如下:
file
=
open("/tmp/foo.txt")
try:
data
=
file.read()
finally:
file.close()
使用with...as...的方式替換,修改後的代碼是:
代碼如下:
with
open("/tmp/foo.txt")
as
file:
data
=
file.read()
#!/usr/bin/env
python
#
with_example01.py
class
Sample:
def
__enter__(self):
print
"In
__enter__()"
return
"Foo"
def
__exit__(self,
type,
value,
trace):
print
"In
__exit__()"
def
get_sample():
return
Sample()
with
get_sample()
as
sample:
print
"sample:",
sample
執行結果為
代碼如下:
In
__enter__()
sample:
Foo
In
__exit__()
1.
__enter__()方法被執行
2.
__enter__()方法返回的值
-
這個例子中是"Foo",賦值給變數'sample'
3.
執行代碼塊,列印變數"sample"的值為
"Foo"
4.
__exit__()方法被調用with真正強大之處是它可以處理異常。可能你已經注意到Sample類的__exit__方法有三個參數-
val,
type
和
trace。這些參數在異常處理中相當有用。我們來改一下代碼,看看具體如何工作的。
Ⅶ python with...as
簡單的說with/as語句的設計是作為常見的try/finally用法的模式替代方案.
用於定義必須執行的終止或清理行為.
例如下面的用法可以確保文件打開之後一定自動關閉,無論是否發生異常
withopen(r'c:\mis.data')as myfile:
do something
Ⅷ 如何用python 中with 用法
要使用 with 語句,首先要明白上下文管理器這一概念。有了上下文管理器,with 語句才能工作。
下面是一組與上下文管理器和with 語句有關的概念。
上下文管理協議(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持
該協議的對象要實現這兩個方法。
上下文管理器(Context Manager):支持上下文管理協議的對象,這種對象實現了
__enter__() 和 __exit__() 方法。上下文管理器定義執行 with 語句時要建立的運行時上下文,
負責執行 with 語句塊上下文中的進入與退出操作。通常使用 with 語句調用上下文管理器,
也可以通過直接調用其方法來使用。
運行時上下文(runtime context):由上下文管理器創建,通過上下文管理器的 __enter__() 和
__exit__() 方法實現,__enter__() 方法在語句體執行之前進入運行時上下文,__exit__() 在
語句體執行完後從運行時上下文退出。with 語句支持運行時上下文這一概念。
上下文表達式(Context Expression):with 語句中跟在關鍵字 with 之後的表達式,該表達式
要返回一個上下文管理器對象。
Ⅸ Python新手,怎麼使用with語句對於with語句及其用法有哪些
比如打開一個文件
with open (filename,'r') as fp:
for line in fp:
print line
with語句主要是實現打開和關閉簡寫為一條語句,上面的例子在for循環完成後 文件自動關閉
Ⅹ python中with python中with as 是什麼意思剛入門求解釋!!!
這個語法是用來代替傳統的try...finally語法的。
with EXPRESSION [ as VARIABLE] WITH-BLOCK
基本思想是with所求值的對象必須有一個__enter__()方法,一個__exit__()方法。
緊跟with後面的語句被求值後,返回對象的__enter__()方法被調用,這個方法的返回值將被賦值給as後面的變數。當with後面的代碼塊全部被執行完之後,將調用前面返回對象的__exit__()方法。
file=open("/tmp/foo.txt")
try:
data=file.read()
finally:
file.close()
使用with...as...的方式替換,修改後的代碼是:
withopen("/tmp/foo.txt")asfile:
data=file.read()
#!/usr/bin/envpython
#with_example01.py
classSample:
def__enter__(self):
print"In__enter__()"
return"Foo"
def__exit__(self,type,value,trace):
print"In__exit__()"
defget_sample():
returnSample()
withget_sample()assample:
print"sample:",sample
執行結果為
In__enter__()
sample:Foo
In__exit__()
1. __enter__()方法被執行
2. __enter__()方法返回的值 - 這個例子中是"Foo",賦值給變數'sample'
3. 執行代碼塊,列印變數"sample"的值為 "Foo"
4. __exit__()方法被調用with真正強大之處是它可以處理異常。可能你已經注意到Sample類的__exit__方法有三個參數- val, type 和 trace。這些參數在異常處理中相當有用。
請採納!