python with关键字——I/O好伴侣

使用with关键字优化Python文件操作与TensorFlow资源共享
本文介绍了Python中使用with关键字进行文件读写操作的优势,它能确保资源在使用完毕后自动释放,避免内存泄露。此外,还讨论了在Tensorflow1.0中,with用于管理上下文,实现变量命名空间和参数共享,但在Tensorflow2.0中,这一功能不再必要,因为直接定义网络层即可实现参数共享。作者建议开发者养成使用with的习惯,以提高代码的健壮性和易维护性。
部署运行你感兴趣的模型镜像

学习python的朋友都知道文件读写的基本操作,通常我们读写文本的姿势是这个样子的:

f = open(file_name)
...
f.close()

每次定义一个文件读写对象,在操作完成后,我们都需要进行关闭操作,如果你一不小心忘记了,恭喜你中奖了?你的程序很可能发生内存泄露,然后内存溢出,然后就挂了。

这样的事情发生的概率挺高的,我以前就总是这样,因为打开文本后,很可能一顿操作,代码写得很开心,自然忘记风险,忘记f.close …那么怎么避免类似的事情发生呢?这时候with就该出场了。

我们只需要:

with open(file_name) as f:
       ...

with作用的代码块执行结束后,会自动进行资源释放,自动啊,妈妈再也不用担心我的内存!!!

后来学了tensorflow 1.0 发现了with的妙用,上下文管理,简单来说,利用

with tf.name_scope(name, reuse=...):
        balaba

我们可以把with下的所有变量都定义到name命名空间下,然后呢?后续可以重复使用。帮助我们实现网络参数共享。不过到了tensorflow2.0 这个功能不美丽了,你只要定义网络layer类似于函数对象,后续想要调用几次就几次,参数都是共享的。

今天就分享到这,希望大家进行文件读写时养成使用with的好习惯!

参考:

follow me

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

### Python 系统关键字及其含义 Python 的系统关键字是指那些被编程语言本身预留并赋予特定意义的词。这些关键词不能作为变量名或其他标识符使用,除非是在上下文中明确允许的情况。 #### 关键字 `and` 和 `or` 逻辑运算符用于组合条件表达式。`and` 表达式的计算遵循短路原则;只有当两个操作数都为真时才返回 True 。相反地,`or` 如果任一操作数为真则立即停止评估并返回该值[^2]。 #### 关键字 `if`, `elif`, `else` 构成分支结构的基础组件,用来执行基于不同条件下不同的代码路径。`if` 后面跟随的是布尔表达式,如果此表达式的求值结果为 true,则会执行紧跟在其后的语句块;否则跳过这个部分继续向下查找匹配项直到遇到 `else` 或者程序结束。 #### 关键字 `for` 和 `while` 循环控制结构的一部分。`for` 循环通常遍历序列(列表、元组、字符串)中的项目,而 `while` 则会在给定条件持续成立的情况下重复运行一段代码体。 #### 关键字 `def` 定义函数的关键字,在创建新函数对象并将名称绑定到该对象上起着重要作用。语法形式如下所示: ```python def function_name(parameters): """docstring""" statement(s) ``` #### 关键字 `class` 面向对象特性的重要组成部分之一,用于声明类——一种用户自定义的数据类型的模板。它封装了属性和方法以便实例化对象。 #### 关键字 `import` 使得模块间的资源共享成为可能。通过指定要加载的具体库文件或包的名字,可以访问外部资源所提供的功能和服务。例如: ```python import math print(math.pi) # 输出圆周率π ``` #### 关键字 `return` 从调用栈中退出当前正在执行的方法/函数,并可选地带回一个值给它的调用方。如果没有显式给出任何参数,默认情况下将隐含地传递 None 值回去。 #### 关键字 `None` 表示不存在的对象或者是未初始化的状态。它是 Python 中唯一属于 NoneType 类型的成员,常常用作占位符或者默认参数值[^4]。 #### 完整关键字表 为了获取完整的 Python 版本对应的关键字列表,可以直接在解释器环境中输入以下命令来查询帮助文档: ```python help("keywords") ``` 这将会显示一份详尽的关键字清单以及简短描述[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘记开挂的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值