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中lambda的用法及其与def的区别解析
Jul 28 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python实现身份证号码解析
Sep 01 Python
python使用pymysql实现操作mysql
Sep 13 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
Jan 06 Python
Python使用文件操作实现一个XX信息管理系统的示例
Jul 02 Python
浅析Python 序列化与反序列化
Aug 05 Python
python3跳出一个循环的实例操作
Aug 18 Python
Python中的面向接口编程示例详解
Jan 17 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常用代码大全(新手入门必备)
2010/06/29 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
全面了解python字符串和字典
2016/07/07 Python
python算法表示概念扫盲教程
2017/04/13 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
python pygame实现2048游戏
2018/11/20 Python
解决python3输入的坑——input()
2020/12/05 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
聚网科技C++面试笔试题
2015/09/01 面试题
大学毕业生简单自荐信
2013/11/05 职场文书
办公室文员工作自我评价
2013/12/01 职场文书
爱心捐款倡议书
2014/04/14 职场文书
兵马俑导游词
2015/02/02 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python