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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python实现的knn算法示例
Jun 14 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
Django中使用MySQL5.5的教程
Dec 18 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
Python字符串的修改方法实例
Dec 19 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
django使用JWT保存用户登录信息
Apr 22 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 26 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
Laravel find in set排序实例
2019/10/09 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
2018/03/06 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
使用Python写CUDA程序的方法
2017/03/27 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
机电专业个人求职信范文
2013/12/30 职场文书
优秀医生事迹材料
2014/02/12 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
鉴定评语大全
2014/05/05 职场文书
课外科技活动总结
2014/08/27 职场文书
2014年科技工作总结
2014/11/26 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript