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实现根据图标提取分类应用程序实例
Sep 28 Python
使用python检测主机存活端口及检查存活主机
Oct 12 Python
详解Django 中是否使用时区的区别
Jun 14 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
python解析json串与正则匹配对比方法
Dec 20 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
python+pygame实现坦克大战
Sep 10 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
python读取Kafka实例
Dec 23 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
Python基于smtplib模块发送邮件代码实例
May 29 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中如何直接执行SHELL
2013/06/28 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
python实现简单的计时器功能函数
2015/03/14 Python
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
Python 爬虫图片简单实现
2017/06/01 Python
简单了解django缓存方式及配置
2019/07/19 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
python常用排序算法的实现代码
2019/11/08 Python
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
大学生工作自荐书
2014/06/16 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
道歉信怎么写
2015/05/12 职场文书
大学生十八大感想
2015/08/11 职场文书
学校运动会开幕词
2016/03/03 职场文书