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 相关文章推荐
wxPython 入门教程
Oct 07 Python
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
Python遍历pandas数据方法总结
Feb 09 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
python计算列表内各元素的个数实例
Jun 29 Python
对python周期性定时器的示例详解
Feb 19 Python
Django实现文件上传和下载功能
Oct 06 Python
python构造IP报文实例
May 05 Python
python爬虫利用代理池更换IP的方法步骤
Feb 21 Python
python抢购软件/插件/脚本附完整源码
Mar 04 Python
Python中的 Set 与 dict
Mar 13 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
php中的一些数组排序方法分享
2012/07/20 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
2019/06/14 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
[01:16:50]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第一场 3月7日
2021/03/11 DOTA
Python简单生成8位随机密码的方法
2017/05/24 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
解决python "No module named pip" 的问题
2018/10/13 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
实现向右循环移位
2014/07/31 面试题
轻化专业学生实习自我鉴定
2013/09/20 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书