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格式化压缩后的JS文件的方法
Mar 05 Python
详解在Python程序中解析并修改XML内容的方法
Nov 16 Python
Python中random模块生成随机数详解
Mar 10 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python3 Random模块代码详解
Dec 04 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 Python
Python的scikit-image模块实例讲解
Dec 30 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
Python 图片添加美颜效果
Apr 28 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/10/27 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
js charAt的使用示例
2014/02/18 Javascript
angular.element方法汇总
2015/01/07 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
python selenium 弹出框处理的实现
2019/02/26 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
群众路线教育实践活动的心得体会
2014/09/03 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
运动会表扬稿范文
2015/05/05 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技