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的垃圾回收机制深入分析
Jul 16 Python
python计算时间差的方法
May 20 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
Python中Threading用法详解
Dec 27 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
深入理解Django-Signals信号量
Feb 19 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
node.js Web应用框架Express入门指南
2014/05/28 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
vue.js的安装方法
2017/05/12 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
JS中多层次排序算法的实现代码
2021/01/06 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
给Python入门者的一些编程建议
2015/06/15 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
python远程连接MySQL数据库
2019/04/19 Python
python plotly绘制直方图实例详解
2019/07/22 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
娱乐节目策划方案
2014/06/10 职场文书
师范生求职信
2014/06/14 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL