在使用Python处理文件的是,对于文件的处理,都会经过三个步骤:打开文件->操作文件->关闭文件。但在有些时候,我们会忘记把文件关闭,这就无法释放文件的打开句柄。这可能觉得有些麻烦,每次打开文件之后都要记得关闭,但我们按照以下方式,就可以避免忘记关闭文件操作的问题。

try:
f = open('stanley_liu.log', 'w')  #'w'模式打开,写文件
print f.read()
finally:  #操作文件后执行此代码块
if f:
f.close()

  以上的这种方法确实能够避免忘记关闭文件的问题,但是每次都很繁琐,为了简化这一操作,就可使用with open来实现。这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用f.close()方法。

with open('stanley_liu.log','w') as t:
t.write('This is a test line') #和for、if一样,这里的代码保持缩进

  这种写法给人的感觉Python味十足,也更符合Pythonic的风格。对于with关键字,它可以在打开某些东西后,不管里面做了什么,with代码块结束之后,就可以调用这个对象的close函数,能够有效的避免忘记关闭文件的操作。

Python with open 使用技巧的更多相关文章

  1. Python 代码性能优化技巧(转)

    原文:Python 代码性能优化技巧 Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化. ...

  2. [转] Python 代码性能优化技巧

    选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化 ...

  3. Python代码性能优化技巧

    摘要:代码优化能够让程序运行更快,可以提高程序的执行效率等,对于一名软件开发人员来说,如何优化代码,从哪里入手进行优化?这些都是他们十分关心的问题.本文着重讲了如何优化Python代码,看完一定会让你 ...

  4. Python之几个技巧特点

    今天偶然看到一篇文章<你可能不知道的30个Python语言的提点技巧>,虽然做python有几年了,但中间还是好多不知道或没想到,特在这里做下摘抄. 原文地址: http://soft.c ...

  5. 你可能不知道的 30 个 Python 语言的特点技巧

        列表按难度排序,常用的语言特征和技巧放在前面. 1.1   分拆 >>> a, b, c = 1, 2, 3>>> a, b, c(1, 2, 3)> ...

  6. 你可能不知道的30个Python语言的特点技巧

    1 介绍 从我开始学习Python时我就决定维护一个经常使用的“窍门”列表.不论何时当我看到一段让我觉得“酷,这样也行!”的代码时(在一个例子中.在StackOverflow.在开源码软件中,等等), ...

  7. Python字典增删操作技巧简述

    Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技 ...

  8. Python 代码性能优化技巧

    选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化 ...

  9. !!Python字典增删操作技巧简述+Python字典嵌套字典与排序

    http://developer.51cto.com/art/201003/186006.htm Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些 ...

  10. 30 个 Python 语言的特点技巧

    1   介绍 从我开始学习Python时我就决定维护一个经常使用的“窍门”列表.不论何时当我看到一段让我觉得“酷,这样也行!”的代码时(在一个例子中.在StackOverflow.在开源码软件中,等等 ...

随机推荐

  1. redis(2)事务的订阅与发布

    一.shell终端进行事务的订阅与发布(异步) 发布 : publish channel message [root@localhost ~]# redis-cli -p -h 192.168.42. ...

  2. .net core中读取配置文件

    1)先看丑陋的方法 读取 appsettings.json   然后在 Startup 的 ConfigureServices() 方法中进行注入: public IConfigurationRoot ...

  3. java程序加到系统托盘的方法

    package swingtest; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; impor ...

  4. PJzhang:ping命令的基本用法

    猫宁!!! 参考链接:https://www.cnblogs.com/diantong/p/9626751.html http://aiezu.com/article/linux_ping_comma ...

  5. javascript预编译练习(变态篇)

    例1. <!DOCTYPE html> <html> <head> <title></title> </head> <bo ...

  6. DNS_主从搭建

    一.DNS简介 1.DNS DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库.有了DNS服务器,我们只需要记录一个网站的域名即可访问,而再也不 ...

  7. Java 使用第三方推送 -- 极光推送

    官网链接 : https://www.jiguang.cn/ 注册完成登录后,点击创建应用 这里不细说 Java后端的整合如下: 添加maven依赖的包 <dependency> < ...

  8. TensorFlow实战第四课(tensorboard数据可视化)

    tensorboard可视化工具 tensorboard是tensorflow的可视化工具,通过这个工具我们可以很清楚的看到整个神经网络的结构及框架. 通过之前展示的代码,我们进行修改从而展示其神经网 ...

  9. 测试工具/PostMan

    1.postman测试上传文件

  10. 用IDEA开发Spring程序

    操作步骤 https://www.cnblogs.com/zyx110/p/11023218.html