这篇文章主要介绍了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()函数打开文件路径报错问题相关推荐

  1. python中的命令行参数_python学习笔记6:命令行参数

    1. 使用步骤 使用步骤如下: # 导入模块 import argparse # 获取parser, description文本会显示在help信息中 parser = argparse.Argume ...

  2. python中while循环的格式_Python 学习笔记——for循环和while循环

    文章目录 一.for循环 1.for循环的格式 2.for循环遍历字典 3.range()函数 for循环配合range()函数 二.while循环 while循环的格式 break while循环 ...

  3. python读取文件路径格式_Python学习笔记读写文件之文件与文件路径

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  4. 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 ...

  5. python中监控错误的语句_Python学习_07_错误、异常

    地毯式地过语法终于快要结束了... Python中的常见异常 1.NameError:尝试访问一个未初始化的变量 2. ZeroDivisionError:除数为0 3. SyntaxError:Py ...

  6. python中bd是什么属性_Python学习:4.运算符以及数据类型解析

    运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...

  7. python什么时候需要加引号_Python学习笔记(八)-Python中的引号用法总结

    Python中的引号: 1.表示多行注释--一对三个单引号或双引号表示多行注释 1 #-*-coding :utf-8-*- #防止乱码,方便在程序中添加中文,把编码统一成UTF-8 2 from s ...

  8. python文本进度条94页_Python学习笔记 | 实例4:文本进度条

    本文为中国大学MOOC<Python语言程序设计>课程学习笔记,课程主讲:嵩天老师,练习平台:Python123,参考教材:<Python语言程序设计基础> 文本进度条-简单的 ...

  9. python爬取基金历史净值_Python学习笔记之抓取某只基金历史净值数据实战案例

    摘要:这篇Python开发技术栏目下的"Python学习笔记之抓取某只基金历史净值数据实战案例",介绍的技术点是"Python学习笔记.Python.历史净值数据.学习笔 ...

  10. python用缩进来写模块_python学习笔记

    一.基础简介 1.#!/usr/bin/python #!/usr/bin/python 相当于写死了 python 路径 #!/usr/bin/env python 会去环境设置寻找 python ...

最新文章

  1. android 仿京东地址选择_Android 开发:仿美团地址选择
  2. SPFieldLookupValue
  3. fckeditor异常总结---1.NoClassDefFoundError: org/slf4j/LoggerFactory和NoClassDefFoundError: org/apache/log
  4. 【复赛前排分享(二)】收好这份王牌优化指南,助你轻松上分无压力
  5. unity 源码_Unity-DataFlowGraph 读源码例子Tour笔记 14
  6. 用正则表达式将前后空格用空字符串替代:replace(/(^\s*)|(\s*$)/g, )
  7. Android之MVC模式
  8. 不容易系列之(3)—— LELE的RPG难题 (递推dp)
  9. 主板风扇转速测试软件,技嘉风扇转速调节及超频软件EasyTune6
  10. [CI、CD入门]maven打包可执行程序之微服务-服务提供者篇
  11. HDU1728 逃离迷宫 【BFS】
  12. Android Studio 全局搜索技巧
  13. HTML的文本格式标记
  14. 让计算机u盘启动,U盘启动设置|电脑如何设置U盘启动?
  15. 数据库防火墙技术展望【终章】
  16. React Native布局实践:开发京东客户端首页(四)——首页功能按钮及控件封装
  17. 金仓数据库 KingbaseES 异构数据库移植指南 (4. 应用迁移流程)
  18. 32位的md5校验程序
  19. DFT(离散傅里叶变换)
  20. 迅为iMX6ULL开发板-创建 ap 热点

热门文章

  1. SpringBoot配置文件属性值
  2. 程序员需要学些什么?程序员好考吗?
  3. mysql慢查询监控及sql优化
  4. 打车软件是不是一个市场泡沫?
  5. 应用服务器文件路径设置
  6. (转载) MTK之NVRAM研究[三]
  7. vs2005 打包,并自动安装SQL数据库
  8. EXCHANGE清除可恢复项目文件夹(就地电子数据展示和保留)
  9. Win10周年升级新增52000个emoji表情
  10. 【转】字符串编辑距离