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通过命令开启http.server服务器的方法
Nov 04 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
用python制作游戏外挂
Jan 04 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
Python中Unittest框架的具体使用
Aug 27 Python
python使用建议技巧分享(三)
Aug 18 Python
python实现简单的井字棋
May 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和ACCESS写聊天室(五)
2006/10/09 PHP
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
php 生成短网址原理及代码
2014/01/23 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
windows系统下Python环境搭建教程
2017/03/28 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
领导检查欢迎词
2014/01/14 职场文书
大学生水果店创业计划书
2014/01/28 职场文书
银行批评与自我批评
2014/02/10 职场文书
销售顾问工作计划书
2014/08/15 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android