浅析使用Python操作文件


Posted in Python onJuly 31, 2017

1. file=open('xxx.txt', encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件本身,所以使用的方法都是流对象的方法)。使用这个函数时推荐指定encoding参数(Python2.7.x中好像不支持),因为Python代码在不同的平台环境中使用的默认编码方式不同,有可能会发生编译出错的问题。

2. 在open中的第一个文件名的的参数中,包含的路径表示虽然可以根据不同的环境使用斜杠和反斜杠,但在Python中表路径时,斜杠都是正确的。

3. file(流对象,open的默认模式下的返回值)的一些方法,使用for循环对file进行迭代时,每次迭代都会自动分离出一行(效果相当于对readlines结果的for循环遍历):
•file.name:获取文件的文件名(包含路径),即传入open文件名参数;
•file.encoding:获取文件的编码方式;
•file.mode:获取文件的访问方式,若没有指定这个参数,open的默认访问方式为只读“r”;
•file.closed:返回文件是否关闭的状态;
•file.close():关闭文件(使用完一定及时使用这个函数关闭文件);
•file.read():从当前定位(一般就是文件开始处)获取文件内容,返回整个文件内容的字符串(此时定位在文件尾,若再使用read()方法,会返回空字符串,因为已经到文件尾了),若指定了需要获取的 字符 数(可以给read方法传入参数,比如:read(3)表示从当前定位往后读取3个字符),则返回指定字符数的字符串。注意不能从一个字符的中间字节处读取,因为有的字符(比如中文)的表示不止一个字节,而定位是以字节来计算位置的,read()是以字符来计数的;
•file.seek(n):使定位到特定 字节 处(若使用read()方法读完文件后还想再读取一次文件,可以使用seek(0)重新定位到文件开始处再读取);
•file.tell():返回当前定位的字节位置;
•file.readline():读取文件中的一行,并定位到下一行的开始处;
•file.readlines():读取文件中的所有行,返回所有行为元素组成的列表;

4. 使用open进行文件操作使建议使用with创建运行环境,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。

# 使用with创建运行时环境
with open('xxx.text', encoding='utf-8') as file:
  file_content = file.read()
  file.seek(0)
  file_ten_characters = file.read(10)
  print(file_content)
  print(file_ten_characters) #执行完with中的代码后自动退出运行时环境
Python 相关文章推荐
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
python 实时遍历日志文件
Apr 12 Python
如何用Python合并lmdb文件
Jul 02 Python
详解基于django实现的webssh简单例子
Jul 17 Python
Python运维自动化之nginx配置文件对比操作示例
Aug 29 Python
python使用PIL实现多张图片垂直合并
Jan 15 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
pytorch masked_fill报错的解决
Feb 18 Python
python实现FTP循环上传文件
Mar 20 Python
Django多个app urls配置代码实例
Nov 26 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
Python的三个重要函数详解
Jan 18 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 #Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 #Python
深入探究Django中的Session与Cookie
Jul 30 #Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 #Python
利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)
Jul 30 #Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 #Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 #Python
You might like
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
PHP网站自动化配置的实现方法(必看)
2017/05/27 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
js 居中漂浮广告
2010/03/21 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
21行Python代码实现拼写检查器
2016/01/25 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
触摸春天教学反思
2014/02/03 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
中秋节感想
2015/08/10 职场文书
员工旷工检讨书
2015/08/15 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle