Python学习笔记之open()函数打开文件路径报错问题


Posted in Python onApril 28, 2018

要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符,标示符'r'表示读。

>>> f = open('D:/test.txt','r')

注意了,对初学python的同学而言,open()函数着实存在一个不大不小的坑,而且十分不容易发现。

错误演示:

>>> f = open('D:\test.txt','r') 
Traceback (most recent call last): 
 
 File"<ipython-input-56-6a0acaf613c9>", line 1, in <module> 
 f =open('D:\test.txt','r') 
 
OSError: [Errno 22] Invalid argument: 'D:\test.txt'

仿佛没有什么不对的地方,一模一样的嘛!再仔细看,斜杠的方向不一样,为什么会出现这样的情况呢,原因在于我们从系统中直接复制文件所在路径所致,Windows系统文件路径中的斜线符号为'\'。

 Python学习笔记之open()函数打开文件路径报错问题

这就引出了转义字符的概念,需要在字符中使用特殊字符时,python用反斜杠'\'转义字符,所以错误案例中的'\'被用作转义,导致解释器解释文件路径错误。

改正的方法有两种:第一、将'\'的方向反向为'/',即文首正确的写法;第二、在含有转义符的字符串前加‘r'表示字符串内按原始含义解释,不做转义处理。(推荐!)

>>> f = open(r'D:\test.txt','r')

另附:

转义字符表

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

open()函数标识符表

r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+ 打开一个文件用于读写。文件指针将会放在文件的开头。

rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python赋值操作方法分享
Mar 23 Python
python单元测试unittest实例详解
May 11 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
python标准库OS模块详解
Mar 10 Python
Django用户身份验证完成示例代码
Apr 03 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
python requests库的使用
Jan 06 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
Python之读取TXT文件的方法小结
Apr 27 #Python
如何利用python查找电脑文件
Apr 27 #Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 #Python
python Spyder界面无法打开的解决方法
Apr 27 #Python
解决Spyder中图片显示太小的问题
Apr 27 #Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 #Python
python spyder中读取txt为图片的方法
Apr 27 #Python
You might like
解析php入库和出库
2013/06/25 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
python实现通过shelve修改对象实例
2014/09/26 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
python七夕浪漫表白源码
2019/04/05 Python
python3中rank函数的用法
2019/11/27 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
留学自荐信
2013/10/10 职场文书
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
学生评语大全
2014/04/18 职场文书
土建专业毕业生自荐书
2014/07/04 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
实习推荐信格式模板
2015/03/27 职场文书