当前位置:   article > 正文

python可以使用函数什么打开文件_python – 用于打开具有两个函数的文件的“with”语法...

python with opener

上下文管理器帮助关闭对象.

但是,您不必创建用作上下文管理器的对象,同时使用它来输入上下文. open()和gzip.open()调用返回一个恰好是上下文管理器的新对象,您可以在输入上下文之前创建它们:

if fname.endswith('.gz'):

f = gzip.open(fname,'rt')

else:

f = open(fname,'r')

with f:

# do something

在这两种情况下,对象在进入上下文时返回self,因此这里不需要使用f作为f.

此外,函数是一等公民,因此您还可以使用变量来存储函数,然后在with语句中调用它来创建上下文管理器和文件对象:

if fname.endswith('.gz'):

opener = gzip.open

else:

opener = open

with opener(fname,'rt') as f: # yes,both open and gzip.open support mode='rt'

# do something

这并没有真正为你带来任何其他方法,但你可以使用字典将扩展名映射到callables,如果你愿意的话.

底线是calls context-manager hook methods,没有更少,仅此而已.应用之后的表达式应该提供这样的管理器,但是创建该对象不受上下文管理协议的约束.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/130319
推荐阅读
相关标签
  

闽ICP备14008679号