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 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
Python对excel的基本操作方法
Feb 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
php 模拟get_headers函数的代码示例
2013/04/27 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
php7 新增功能实例总结
2020/05/25 PHP
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python Matplotlib库入门指南
2015/05/18 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
Python socket 套接字实现通信详解
2019/08/27 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
英国网上电器商店:Electricshop
2020/03/15 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
几道PHP面试题
2013/04/14 面试题
教育专业个人求职信
2013/12/02 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
python实现简单聊天功能
2021/07/07 Python
DE1103使用报告
2022/04/05 无线电
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers