python关键字"with"用于什么?

例如:http://docs.python.org/tutorial/inputoutput.html

>>> with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True

推荐答案

在python中,在处理非托管资源(如文件流)时使用with关键字.它类似于VB中的using语句.NET和C#.它允许您确保在使用资源的代码完成运行时"清理"资源,即使抛出异常也是如此.它为try/finally个块提供了"语法糖".

Python Docs开始:

with语句澄清了以前使用try...finally个块来确保执行清理代码的代码.在本节中,我将讨论该语句,因为它将是常用的.在下一节中,我将判断实现细节,并展示如何编写与此语句一起使用的对象.

with语句是控制流 struct ,其基本 struct 为:

with expression [as variable]:
    with-block

表达式被求值,它应该产生一个支持上下文管理协议的对象(即,有__enter__()__exit__()个方法).

Update根据Scott Wisniewski的注释修复了VB标注.我确实把withusing搞混了.

Python相关问答推荐

将numpy数组与空数组相加

Pandas 群内滚动总和

为什么dict(id=1,**{id:2})有时会引发KeyMessage:id而不是TypMessage?

如何终止带有队列的Python进程?+ 队列大小的错误?

使用polars .滤镜进行切片速度比pandas .loc慢

Python在tuple上操作不会通过整个单词匹配

线性模型PanelOLS和statmodels OLS之间的区别

带条件计算最小值

追溯(最近最后一次调用):文件C:\Users\Diplom/PycharmProject\Yolo01\Roboflow-4.py,第4行,在模块导入roboflow中

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

DataFrames与NaN的条件乘法

为什么抓取的HTML与浏览器判断的元素不同?

什么是最好的方法来切割一个相框到一个面具的第一个实例?

Python逻辑操作作为Pandas中的条件

为什么numpy. vectorize调用vectorized函数的次数比vector中的元素要多?

Polars asof在下一个可用日期加入

启动带有参数的Python NTFS会导致文件路径混乱

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

Polars map_使用多处理对UDF进行批处理

如果包含特定值,则筛选Groupby