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中取整的几种方法小结
Jan 06 Python
Sanic框架请求与响应实例分析
Jul 16 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
使用Python画出小人发射爱心的代码
Nov 23 Python
Django配置文件代码说明
Dec 04 Python
PyQt5实现登录页面
May 30 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
详解Python中下划线的5种含义
Jul 15 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表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
PHP中SESSION的注销与清除
2015/04/16 PHP
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
JS表的模拟方法
2015/02/05 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
极简的Python入门指引
2015/04/01 Python
Python 多进程和数据传递的理解
2017/10/09 Python
Python分析学校四六级过关情况
2017/11/22 Python
python实现员工管理系统
2018/01/11 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
蔻驰英国官网:COACH英国
2020/07/19 全球购物
商务主管岗位职责
2013/12/08 职场文书
电子商务专业求职信
2014/03/08 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
初中作文评语大全
2014/04/23 职场文书
四风问题对照检查材料
2014/09/22 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python