Python open读写文件实现脚本


Posted in Python onSeptember 06, 2008

1.open

使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。

file_object = open('thefile.txt')
try:
  all_the_text = file_object.read( )
finally:
  file_object.close( )

注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。

2.读文件

读文本文件

input = open('data', 'r')
#第二个参数默认为r
input = open('data')

读二进制文件

input = open('data', 'rb')

读取所有内容

file_object = open('thefile.txt')
try:
  all_the_text = file_object.read( )
finally:
  file_object.close( )

读固定字节

file_object = open('abinfile', 'rb')
try:
  while True:
    chunk = file_object.read(100)
    if not chunk:
      break
    do_something_with(chunk)
finally:
  file_object.close( )

读每行

list_of_all_the_lines = file_object.readlines( )

如果文件是文本文件,还可以直接遍历文件对象获取每行:

for line in file_object:
    process line

3.写文件

写文本文件
output = open('data', 'w')

写二进制文件
output = open('data', 'wb')

追加写文件
output = open('data', 'w+')

写数据

file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

写入多行
file_object.writelines(list_of_text_strings)

注意,调用writelines写入多行在性能上会比使用write一次性写入要高。

Python 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
tensorflow获取变量维度信息
Mar 10 Python
Win8下python3.5.1安装教程
Jul 29 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
Windows10+anacond+GPU+pytorch安装详细过程
Mar 24 Python
Python多线程threading创建及使用方法解析
Jun 17 Python
python -v 报错问题的解决方法
Sep 15 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 Python
asyncio异步编程之Task对象详解
Mar 13 Python
Python 过滤字符串的技巧,map与itertools.imap
Sep 06 #Python
比较详细Python正则表达式操作指南(re使用)
Sep 06 #Python
Python splitlines使用技巧
Sep 06 #Python
Python struct.unpack
Sep 06 #Python
Python 条件判断的缩写方法
Sep 06 #Python
Python 可爱的大小写
Sep 06 #Python
Python 除法小技巧
Sep 06 #Python
You might like
玩转图像函数库―常见图形操作
2006/09/03 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
新手入门常用代码集锦
2007/01/11 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
React组件生命周期详解
2017/07/03 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
python 项目目录结构设置
2020/02/14 Python
python list的index()和find()的实现
2020/11/16 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
财务会计专业毕业生自荐信
2013/10/19 职场文书
应届生财务管理求职信
2013/11/06 职场文书
计算机软件个人的自荐信范文
2013/12/01 职场文书
单位未婚证明范本
2014/11/25 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis