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中操作时间之mktime()方法的使用教程
May 22 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
python 实现简单的FTP程序
Dec 27 Python
python实现微信打飞机游戏
Mar 24 Python
Python 解决相对路径问题:&quot;No such file or directory&quot;
Jun 05 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
Python爬取酷狗MP3音频的步骤
Feb 26 Python
opencv检测动态物体的实现
Jul 21 Python
Python中的 No Module named ***问题及解决
Jul 23 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
纯php生成随机密码
2015/10/30 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
python多线程方式执行多个bat代码
2016/06/07 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
django 环境变量配置过程详解
2019/08/06 Python
将python安装信息加入注册表的示例
2019/11/20 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
电子商务专业学生职业生涯规划
2014/03/07 职场文书
婚庆公司计划书
2014/09/15 职场文书
承诺保证书格式
2015/02/28 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Java版 单机五子棋
2022/05/04 Java/Android
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技