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 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
在Python的框架中为MySQL实现restful接口的教程
Apr 08 Python
Python检测一个对象是否为字符串类的方法
May 21 Python
Python科学计算之Pandas详解
Jan 15 Python
Python标准库之itertools库的使用方法
Sep 07 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
Python实现的knn算法示例
Jun 14 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
python能自学吗
Jun 18 Python
Python 处理日期时间的Arrow库使用
Aug 18 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
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
php中错误处理操作实例分析
2019/08/23 PHP
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
python复制文件到指定目录的实例
2018/04/27 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
python实现邮件自动发送
2019/08/10 Python
Python pip配置国内源的方法
2020/02/14 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
品管员岗位职责
2013/11/10 职场文书
药品业务员岗位职责
2014/04/17 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS