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 表达式和语句及for、while循环练习实例
Jul 07 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
Python 实现数据结构中的的栈队列
May 16 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
Python常用数据类型之间的转换总结
Sep 06 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python FTP编程基础入门
Feb 27 Python
PyTorch中permute的使用方法
Apr 26 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
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
php中的动态调用实例分析
2015/01/07 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
办公室助理岗位职责
2013/12/25 职场文书
股权转让意向书
2014/04/01 职场文书
学生会宣传部部长竞选演讲稿
2014/04/25 职场文书
团日活动总结书格式
2014/05/08 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
个人总结怎么写
2015/02/26 职场文书
护士工作心得体会
2016/01/25 职场文书
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技