python打开文件的方式有哪些


Posted in Python onJune 29, 2020

python下打开文件超级简单,不用导入任何包,直接输入

f = open('your_file.txt','r')

就可以打开一个文件进行操作。第二个参数为对文件的操作方式,'w'是写文件,已存在的同名文件会被清空,不存在则会创建一个;'r'是读取文件,不存在会报错;'a'是在文件尾部添加内容,不存在会创建文件,存在则直接在尾部进行添加;还有'wb'是写二进制文件;'rb'是读取二进制文件,比如图片之类的。

但是这种方式其实不是最好的打开文件的方式,这种方式可能会有这样几个问题:

1、未指定文件编码格式,如果文件编码格式与当前默认的编码格式不一致,那么文件内容的读写将出现错误。

2、如果读写文件有错误,会导致文件无法正确关闭。因为哪怕在后面有

f.close()

语句,但是如果在打开的时候就出现错误,这种打开方式会出现问题。因此,一般来说,不推荐这种打开文件的方式。(我之前其实一直使用这种方法,,虽然也知道其他的方法,但是嫌麻烦一直没怎么用…)

上面的这些问题都是针对python2的,在python3下open函数可以通过encoding参数指定编码方式,而在2中不可以。

在python3下可以直接通过这样来打开一个文件:

f = open('your_file.txt', 'r', encoding='utf-8')

下面的两种方式在python2和python3下都可以使用,因此如果想要让你的代码在2和3下都兼容的话可以尝试下面的两种方法:

import codecs
f1 = codecs.open('your_file1.txt', 'r', 'utf-8') #使用codecs包
f1.close()
import io
f2 = io.open('your_file2.txt', 'r', encoding='utf-8') #使用io包
f2.close()

不知道有没有细心的同学发现上面的打开文件的方式都有瑕疵,下面的方法则是用来解决刚才提到的第二个问题的,也是最推荐的一种打开文件的方式。

import codecs #或者io,使用哪种包无所谓
with codecs.open('your_file.txt', 'r', 'utf-8') as f:
  f.write('This method is prior')

使用with这种上下文环境的方式打开文件,在对文件操作完成后无需通过close()关闭文件,文件会自动关闭,而且安全系数更高。

知识点扩展:

Python中type打开文件的方式

这几天在看《利用Python进行数据分析》,在第六章数据加载、存储、与文件格式中遇到个小问题。

在Linux访问文件是用:!cat ch06/ex1.csv

在Windows命令行中使用:!type ch06\ex1.csv

需要作说明的是:

1.Windows与Linux不同的是win用的“\”添加子目录,而Linux使用“/”添加;

2.win下也可以使用绝对路径进行访问,在所在目录下安如图操作方式进行复制,此时需加引号进行使用:!type “C:\Users\Burette\pydata-book-master\ch06\ex1.csv"

到此这篇关于python打开文件的方式有哪些的文章就介绍到这了,更多相关如何用python打开文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中函数总结之装饰器闭包详解
Jun 12 Python
python正则分析nginx的访问日志
Jan 17 Python
python中logging包的使用总结
Feb 28 Python
浅析Python四种数据类型
Sep 26 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
Oct 16 Python
python实现简单的单变量线性回归方法
Nov 08 Python
python使用response.read()接收json数据的实例
Dec 19 Python
Python实现捕获异常发生的文件和具体行数
Apr 25 Python
python 双循环遍历list 变量判断代码
May 04 Python
Python基于pip实现离线打包过程详解
May 15 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 #Python
python中如何写类
Jun 29 #Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 #Python
Python unittest基本使用方法代码实例
Jun 29 #Python
解决keras使用cov1D函数的输入问题
Jun 29 #Python
快速了解Python开发环境Spyder
Jun 29 #Python
使用Keras构造简单的CNN网络实例
Jun 29 #Python
You might like
JpGraph php柱状图使用介绍
2011/08/23 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
浅析Python中的join()方法的使用
2015/05/19 Python
Python编程之多态用法实例详解
2015/05/19 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
简单介绍python封装的基本知识
2019/08/10 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python3 logging日志封装实例
2020/04/08 Python
python实现简单遗传算法
2020/09/18 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
Python对excel的基本操作方法
2021/02/18 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
经典团队口号
2014/06/06 职场文书
搞笑老公保证书
2015/02/26 职场文书
演讲开场白和结束语
2015/05/29 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
js 实现验证码输入框示例详解
2022/09/23 Javascript