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判断你是青少年还是老年人
Nov 29 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
Django Rest framework认证组件详细用法
Jul 25 Python
对Django 转发和重定向的实例详解
Aug 06 Python
python 3.6.7实现端口扫描器
Sep 04 Python
python 字典有序并写入json文件过程解析
Sep 30 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
python flask搭建web应用教程
Nov 19 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
pygame实现弹球游戏
Apr 14 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
解决pytorch 损失函数中输入输出不匹配的问题
Jun 05 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
Terran兵种对照表
2020/03/14 星际争霸
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
PHP代码保护--Zend Guard的使用详解
2013/06/03 PHP
yii分页组件用法实例分析
2015/12/28 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
关于php中一些字符串总结
2016/05/05 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
js倒计时小程序
2013/11/05 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
js实现交通灯效果
2017/01/13 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
vue构建单页面应用实战
2017/04/10 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
vue的mixins属性详解
2018/03/14 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
js实现星星打分效果
2020/07/05 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
python异步实现定时任务和周期任务的方法
2019/06/29 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
我的大学生活职业生涯规划
2014/01/02 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers