python中open打开路径问题_Python学习笔记之open()函数打开文件路径报错问题
这篇文章主要介绍了Python学习笔记之open()函数打开文件路径报错问题,现在分享给大家,也给大家做个参考。一起过来看看吧
要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符,标示符'r'表示读。
>>> f = open('D:/test.txt','r')
注意了,对初学python的同学而言,open()函数着实存在一个不大不小的坑,而且十分不容易发现。
错误演示:
>>> f = open('D:\test.txt','r')
Traceback (most recent call last):
File"", line 1, in
f =open('D:\test.txt','r')
OSError: [Errno 22] Invalid argument: 'D:\test.txt'
仿佛没有什么不对的地方,一模一样的嘛!再仔细看,斜杠的方向不一样,为什么会出现这样的情况呢,原因在于我们从系统中直接复制文件所在路径所致,Windows系统文件路径中的斜线符号为'\'。
这就引出了转义字符的概念,需要在字符中使用特殊字符时,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配置与OpenCV的使用详解
python中open打开路径问题_Python学习笔记之open()函数打开文件路径报错问题相关推荐
- python中的命令行参数_python学习笔记6:命令行参数
1. 使用步骤 使用步骤如下: # 导入模块 import argparse # 获取parser, description文本会显示在help信息中 parser = argparse.Argume ...
- python中while循环的格式_Python 学习笔记——for循环和while循环
文章目录 一.for循环 1.for循环的格式 2.for循环遍历字典 3.range()函数 for循环配合range()函数 二.while循环 while循环的格式 break while循环 ...
- python读取文件路径格式_Python学习笔记读写文件之文件与文件路径
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- python中for和while区别_Python学习第九篇——while和for的区别
1 pets = ['dog','cat','dog','goldfish','cat','rabbit','cat']2 print(pets)3 for pet inpets:4 print(pe ...
- python中监控错误的语句_Python学习_07_错误、异常
地毯式地过语法终于快要结束了... Python中的常见异常 1.NameError:尝试访问一个未初始化的变量 2. ZeroDivisionError:除数为0 3. SyntaxError:Py ...
- python中bd是什么属性_Python学习:4.运算符以及数据类型解析
运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...
- python什么时候需要加引号_Python学习笔记(八)-Python中的引号用法总结
Python中的引号: 1.表示多行注释--一对三个单引号或双引号表示多行注释 1 #-*-coding :utf-8-*- #防止乱码,方便在程序中添加中文,把编码统一成UTF-8 2 from s ...
- python文本进度条94页_Python学习笔记 | 实例4:文本进度条
本文为中国大学MOOC<Python语言程序设计>课程学习笔记,课程主讲:嵩天老师,练习平台:Python123,参考教材:<Python语言程序设计基础> 文本进度条-简单的 ...
- python爬取基金历史净值_Python学习笔记之抓取某只基金历史净值数据实战案例
摘要:这篇Python开发技术栏目下的"Python学习笔记之抓取某只基金历史净值数据实战案例",介绍的技术点是"Python学习笔记.Python.历史净值数据.学习笔 ...
- python用缩进来写模块_python学习笔记
一.基础简介 1.#!/usr/bin/python #!/usr/bin/python 相当于写死了 python 路径 #!/usr/bin/env python 会去环境设置寻找 python ...
最新文章
- android 仿京东地址选择_Android 开发:仿美团地址选择
- SPFieldLookupValue
- fckeditor异常总结---1.NoClassDefFoundError: org/slf4j/LoggerFactory和NoClassDefFoundError: org/apache/log
- 【复赛前排分享(二)】收好这份王牌优化指南,助你轻松上分无压力
- unity 源码_Unity-DataFlowGraph 读源码例子Tour笔记 14
- 用正则表达式将前后空格用空字符串替代:replace(/(^\s*)|(\s*$)/g, )
- Android之MVC模式
- 不容易系列之(3)—— LELE的RPG难题 (递推dp)
- 主板风扇转速测试软件,技嘉风扇转速调节及超频软件EasyTune6
- [CI、CD入门]maven打包可执行程序之微服务-服务提供者篇
- HDU1728 逃离迷宫 【BFS】
- Android Studio 全局搜索技巧
- HTML的文本格式标记
- 让计算机u盘启动,U盘启动设置|电脑如何设置U盘启动?
- 数据库防火墙技术展望【终章】
- React Native布局实践:开发京东客户端首页(四)——首页功能按钮及控件封装
- 金仓数据库 KingbaseES 异构数据库移植指南 (4. 应用迁移流程)
- 32位的md5校验程序
- DFT(离散傅里叶变换)
- 迅为iMX6ULL开发板-创建 ap 热点