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 相关文章推荐
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
教你用Python写安卓游戏外挂
Jan 11 Python
详解python分布式进程
Oct 08 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
python网络编程之五子棋游戏
May 14 Python
重写django的model下的objects模型管理器方式
May 15 Python
python随机模块random的22种函数(小结)
May 15 Python
python statsmodel的使用
Dec 21 Python
Python连续赋值需要注意的一些问题
Jun 03 Python
使用python绘制横竖条形图
Apr 21 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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 身份验证方面的函数
2009/10/11 PHP
yii添删改查实例
2015/11/16 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
Vue实现本地购物车功能
2018/12/05 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
python遍历目录的方法小结
2016/04/28 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
python基础教程之Filter使用方法
2017/01/17 Python
详解python中的json和字典dict
2018/06/22 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
教你打造完美的创业计划书
2014/01/06 职场文书
竞选部长演讲稿
2014/04/26 职场文书
家长给学校的建议书
2014/05/15 职场文书
大学生求职信例文
2014/06/29 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
《花钟》教学反思
2016/02/17 职场文书
市场营销计划书
2019/04/24 职场文书
员工给公司的建议书
2019/06/24 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android