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 相关文章推荐
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
Python中给List添加元素的4种方法分享
Nov 28 Python
使用Python编写一个模仿CPU工作的程序
Apr 16 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
python中实现k-means聚类算法详解
Nov 11 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
python正则实现提取电话功能
Feb 24 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
python求解汉诺塔游戏
Jul 09 Python
浅谈Python3中print函数的换行
Aug 05 Python
pycharm 快速解决python代码冲突的问题
Jan 15 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与php MySQL 之间的关系
2009/07/17 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
javascript中的继承实例代码
2011/04/27 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
跟老齐学Python之Python文档
2014/10/10 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python绘制七段数码管实例代码
2017/12/20 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
日语专业个人的求职信
2013/12/03 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
计算机专业职业规划
2014/02/28 职场文书
公司口号大全
2014/06/11 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
党员证明模板
2015/06/19 职场文书
高中政治教学反思
2016/02/23 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python
Mysql 一主多从的部署
2022/05/20 MySQL