资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

with函数python,with函数用法

Python的startswith与endswith函数

在Python中有两个函数分别是startswith()函数与endswith()函数,功能都十分相似,

成都一家集口碑和实力的网站建设服务商,拥有专业的企业建站团队和靠谱的建站技术,10多年企业及个人网站建设经验 ,为成都数千家客户提供网页设计制作,网站开发,企业网站制作建设等服务,包括成都营销型网站建设,成都品牌网站建设,同时也为不同行业的客户提供成都网站设计、成都做网站的服务,包括成都电商型网站制作建设,装修行业网站制作建设,传统机械行业网站建设,传统农业行业网站制作建设。在成都做网站,选网站制作建设服务商就选成都创新互联公司

startswith()函数判断文本是否以某个字符开始,endswith()函数判断文本是否以某个字符结束。

此函数判断一个文本是否以某个或几个字符开始,结果以True或者False返回。

text``=``'welcome to qttc blog'

print text.startswith(``'w'``) # True

print text.startswith(``'wel'``) # True

print text.startswith(``'c'``) # False

print text.startswith('') # True

|

此函数判断一个文本是否以某个或几个字符结束,结果以True或者False返回。

|

text``=``'welcome to qttc blog'

print text.endswith(``'g'``) # True

print text.endswith(``'go'``) # False

print text.endswith(``'og'``) # True

print text.endswith('') # True

print text.endswith(``'g '``) # False

|

我们可以利用endswith()函数判断文件名的是不是以.exe后缀结尾判断是否为可执行文件

|

# coding=utf8

fileName1``=``'qttc.exe'

if``(fileName1.endswith(``'.exe'``)):

print '这是一个exe执行文件'

else``:

print '这不是一个exe执行文件'

# 执行结果:这是一个exe执行文件

|

|

|

# coding=utf8

fileName1``=``'pic.jpg'

if fileName1.endswith(``'.gif'``) or fileName1.endswith(``'.jpg'``) or fileName1.endswith(``'.png'``):

print '这是一张图片'

else``:

print '这不是一张图片'

# 执行结果:这是一张图片

|

如何用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 语句是什么以及我们为什么使用它呢?请阅读这篇文章!我们中的许多人在 Python 代码中一遍又一遍地看到这个代码片段: with open( 'Hi.text' , 'w' ) as f:

f.write( "Hello, there" )

但是,我们中的一些人不知道 with 有什么用,以及为什么我们需要在这里使用它。在此阅读中,您将找到关于 with 可解决的几乎所有问题。让我们开始吧!

首先,让我们考虑一下如果不使用 with 关键字我们需要做什么。在这种情况下,我们需要先打开文件并 尝试 执行 write 。不管成功与否,我们最好在 最后 关闭它,所以我们的代码将如下所示:

f = open( 'Hi.text' , 'w' )

try :

f.write( 'Hello, there' )

finally :

f.close()

那么, with 关键字有什么用呢?它只是有助于将我们的 try..finally 代码缩短为 with... 的单个语句!这就是 with 语句用法。

那么,它到底是什么?事实上, with 语句本身在 Python 中并没有什么特别之处,它只是 Python 中 上下文管理器 的一个特性。 上下文管理器 ,引用自 Python 官方文档, 是一种让您在需要时准确分配和释放资源的方法 ,或者简单来说: 当您在某些资源上做某事时缩短您的代码片段 ,这意味着您可以自己定义 with 语句的用法!

我们如何做到这一点?嗯,很简单,你只需要实现两个 魔术函数 :一个叫做 __enter__ ,另一个叫做 __exit__ 。第一种方法是编写一个实现这两个函数的类,如下所示:

class My_file :

def __init__ (self, fname):

self.fname = fname

def __enter__ (self):

self.file = open(self.fname, 'w' )

return self.file

def __exit__ (self, exc_type, exc_val, exc_trace_back):

if self.file:

self.file.close()

在这里,我们创建了一个普通的 Python 类,实现了两个魔术函数。注意这两个函数的签名: __enter__ 只接受 self ,而 __exit__ 将接受更多参数,示例中的这三个是标准形式。这样,我们就可以直接使用:

with My_file( 'hello.txt' ) as f:

f.write( 'hello, world!' )

这里的 with 语句会先调用 __init__ 构造一个新对象,然后再调用 __enter__ 方法;最后,它会在代码块完成之前触发 __exit__ 方法。所以,上面代码的大致等价如下:

myfile = My_file( 'hello.txt' )

f = myfile.__enter__()

f.write( 'hello, world!' )

myfile.__exit(...)

实现 上下文管理器 的第二种方法是通过 装饰器 ,如下:

1.你 import contextmanager from contextlib

2.你写一个函数来实现你想要的 with 语句。

3.在函数上方添加一个装饰器 @contextmanager 。

4.使用你的 with your_function !

根据上面的介绍,让我们写一个 装饰器上下文管理器 !

from contextlib import contextmanager

@contextmanager

def my_file_open (fname):

try :

f = open(fname, 'w' )

yield f

finally :

print( 'Closing file' )

f.close()

with file_open( 'hi.txt' ) as f:

f.write( 'hello world' )

@contextmanager

def closing (f):

try :

f.write( "Finish writing" )

finally :

f.close()

with closing(open( "hi.text" )):

f.write( "hello world" )

例如,在上面的代码中,我们可以直接调用 with close(your_way_of_getting_resource) ,在你下面写的代码块即将完成之前( f.write("hello world") ),它会执行 try..finally 我们在上面定义的块。另一个是使用 suppress 工具。我们知道,在很多情况下,如果我们尝试获取一些资源,很可能在打开文件时会出现 FileNotFoundException 等错误。在某些情况下,我们希望捕获错误或抑制错误,以便程序继续正常运行。 suppress 是我们可以抑制警告的一种方式。你需要做的就是弄清楚你想要抑制哪个异常,并编写 with suppress(your_choice_of_exception) ,Python 将从这里开始处理它。在其他情况下,您可能只想在输入 with 代码块时执行某些操作。在这种情况下, nullcontext 对你来说会很方便。 nullcontext 只会返回你在 __enter__ 函数中定义的东西,而不会做任何其他事情。如果您在 Python 中处理 async 操作以访问资源,则 aclosure 是处理这种情况的实用工具。

总结

本文介绍了 with 语句的一些基本概念和用法及其底层工作原理。还有很多有趣的东西,请查看 Python 的 contextlib 文档。最后,祝您能像往常一样快乐学习和快乐编码!

链接:

你还有什么想要补充的吗?

python with函数怎么用

with在python中并不是函数,是一个关键词语句,比如if就是关键词语句。

with大多用来打开一个文档。

比如:

with open('test.txt') as f:

f.read()

这样就可以读取名为test的文档里的内容,并且使用with语句不需要我们手动再调用文件的close()方法来关闭文件,如果test.txt文档对象不再被使用,with会自动关闭文档。比较智能一点。


本文标题:with函数python,with函数用法
分享链接:http://cdkjz.cn/article/hsihgj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220