+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(108)

2019-09(100)

2019-10(2)

[Python学习]错误篇二:切换当前工作目录时出错——FileNotFoundError: [WinError 3] 系统找不到指定的路径

发布于2019-08-07 10:51     阅读(104)     评论(0)     点赞(5)     收藏(1)


REFERENCE:《Head First Python》

ID:我的第二篇[Python学习]

BIRTHDAY:2019.7.13

EXPERIENCE_SHARING:解决切换当前工作目录时出现的错误——FileNotFoundError

 

1、错误类型

FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '../HeadFirstPython/chapter3'

在文件夹D:\0tempt,新建了文件夹 HeadFirstPython,其包含子文件夹chapter3。

试图更改 当前工作目录为包含数据文件的文件夹,却出错了……

>>> import os   #从标准库导入"os"
>>> os.getcwd()
'D:\\Python37'  #当前工作目录
>>> os.chdir('../HeadFirstPython/chapter3')  #切换为包含数据文件的文件夹
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    os.chdir('../HeadFirstPython/chapter3')
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '../HeadFirstPython/chapter3'

先把书上的例子放出来:

>>>import os
>>> os.getcwd () 
' /Users/barryp/Documents '
>>> os. chdir('. . /HeadFirstPython/ chapter3')
>>> os. getcwd ()
' /Users/barryp/HeadFirs tPython/ chapter3'

对比一下,突然有新发现:

#当前工作目录
我的—— 'D:\\Python37'  
书上的—— ' /Users/barryp/Documents '

没错,斜杠符号的不同,'/ '和' \',有不同吗?来试试看——

接下来的一串,是不断探索的结果:

(1)把'/ ' 换成了 ' \'——

还是有错……

>>> os.chdir('..\HeadFirstPython\chapter3')
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    os.chdir('..\HeadFirstPython\chapter3')
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '..\\HeadFirstPython\\chapter3'

(2) 是路径不够完整?那写完整的试试——

还是有错……错误类型改变了

ValueError: chdir: embedded null character in path 意思是:嵌入了无效字符
>>> os.chdir('D:\0tempt\HeadFirstPython\chapter3')
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    os.chdir('D:\0tempt\HeadFirstPython\chapter3')
ValueError: chdir: embedded null character in path

(3)再观察一下——

路径 D:\0tempt\HeadFirstPython\chapter3,是在电脑文件夹搜索栏直接复制过来的,相比以下路径

>>> os.getcwd()
'D:\\Python37'  #当前工作目录

斜杠少了一个……

那试着都增加一个——

>>> os.chdir('D:\\0tempt\\HeadFirstPython\\chapter3')
>>> os.getcwd()
'D:\\0tempt\\HeadFirstPython\\chapter3'

Great! You make it~~

切换当前工作目录操作完整的代码:

>>> import os
>>> os.getcwd()
'D:\\Python37'
>>> os.chdir('D:\\0tempt\\HeadFirstPython\\chapter3')
>>> os.getcwd()
'D:\\0tempt\\HeadFirstPython\\chapter3'

(4)再来探究一下:

1、书上的例子中,路径的写法 ——'/ '和' \',有什么不同吗?

2、路径的写法规则

为什么在自己电脑磁盘的文件夹搜索栏里复制的文件路径是单斜杠

D:\0tempt\HeadFirstPython\chapter3

而代码中是双斜杠

'D:\\0tempt\\HeadFirstPython\\chapter3'

>>> os.chdir('D:\\0tempt\\HeadFirstPython\\chapter3')
>>> os.getcwd()
'D:\\0tempt\\HeadFirstPython\\chapter3'
>>> os.chdir('D://0tempt//HeadFirstPython//chapter3') #换成'//'——同样也没错 >>> os.getcwd() 'D:\\0tempt\\HeadFirstPython\\chapter3' >>> os.chdir('D:\0tempt\HeadFirstPython\chapter3') #换成'\'——出错了——这种写法错误 Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> os.chdir('D:\0tempt\HeadFirstPython\chapter3') ValueError: chdir: embedded null character in path >>> os.chdir('D:/0tempt/HeadFirstPython/chapter3') #换成'/'——同样也没错 >>> os.getcwd() 'D:\\0tempt\\HeadFirstPython\\chapter3'
'D:\\0tempt\\HeadFirstPython\\chapter3'
'D://0tempt//HeadFirstPython//chapter3'
'D:/0tempt/HeadFirstPython/chapter3'

三种路径的写法都OK

【总结】

书上的例子:

>>>import os
>>> os.getcwd () 
' /Users/barryp/Documents '
>>> os. chdir('. . /HeadFirstPython/ chapter3')
>>> os. getcwd ()
' /Users/barryp/HeadFirstPython/ chapter3'
'. . /HeadFirstPython/ chapter3'
使用的是相对路径,在代码中会出错。原因是什么,学识尚浅,待解决,也请走过路过的大佬指教~
代码修改时,使用的是绝对路径,运行无误。
————————————————————————————————————————————————————————--
咳咳……刚刚查资料时突然解决了这个问题——
../ 表示的是表示上一级目录(也可以理解为 上一级文件夹,上行一个文件夹;
拿上面书上的例子来解释,就是文件夹HeadFirstPython/ chapter3往上一级,就到达目录文件夹/Users/barryp)
./ 表示的是当前目录


来试验一下:

1、将文件夹 HeadFirstPython(包含子文件夹chapter3,子文件夹里存放文件sketch.txt)放在Python安装目录 D:\Python37\0PRACTICES。

>>> import os
>>> os.getcwd()
'D:\\Python37'
>>> os.chdir('./0PRACTICES/HeadFirstPython/chapter3')
>>> os.getcwd()
'D:\\Python37\\0PRACTICES\\HeadFirstPython\\chapter3'

 因为 文件夹 HeadFirstPython是放在Python默认的当前工作文件夹 'D:\\Python37'中,

故 当前目录 即  'D:\\Python37',代码中用“./”,表示“在当前目录”。

>>> os.chdir('./0PRACTICES/HeadFirstPython/chapter3')

 

2、将文件夹 HeadFirstPython(包含子文件夹chapter3,子文件夹里存放文件sketch.txt)放在文件夹 D:\0tempt。

>>> import os
>>> os.getcwd()
'D:\\Python37'
>>> os.chdir('../HeadFirstPython/chapter3')
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    os.chdir('../HeadFirstPython/chapter3')
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '../HeadFirstPython/chapter3'
>>> os.chdir('/0tempt/HeadFirstPython/chapter3')
>>> os.getcwd()
'D:\\0tempt\\HeadFirstPython\\chapter3'
>>> 

在这个例子中,文件夹 HeadFirstPython不是放在Python默认的当前工作文件夹 'D:\\Python37'中,而是同根磁盘的D:\0tempt,

故这时的当前目录不是'D:\\Python37',而是“D:”,代码中未用“./”,直接省略根目录“D:”。
>>> os.chdir('/0tempt/HeadFirstPython/chapter3')
——————————————————————————————————————————————————
/0tempt/HeadFirstPython/chapter3
这种路径表示是正确的,因为这是 相对路径,文件夹0tempt和文件夹Python37 根目录都是D盘。所以省略了根目录D,也是对的。

上面验证了,以下三种路径都ok
'D:\\0tempt\\HeadFirstPython\\chapter3'
'D://0tempt//HeadFirstPython//chapter3'
'D:/0tempt/HeadFirstPython/chapter3'

三种路径的写法都OK

那省略一下根目录:(又是吃饱了折腾一下) 

>>> os.chdir('\\0tempt\\HeadFirstPython\\chapter3')
>>> os.getcwd()
'D:\\0tempt\\HeadFirstPython\\chapter3'

>>> os.chdir('//0tempt//HeadFirstPython//chapter3')
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    os.chdir('//0tempt//HeadFirstPython//chapter3')
FileNotFoundError: [WinError 53] 找不到网络路径。: '//0tempt//HeadFirstPython//chapter3'

>>> os.chdir('/0tempt/HeadFirstPython/chapter3')
>>> os.getcwd()
'D:\\0tempt\\HeadFirstPython\\chapter3'

 

这里再补充一下绝对路径相对路径的知识:

绝对路径:

 即从最大的根目录开始表示,一直到该文件名。

相对路径:

即该文件自己相对于目标(另一个文件)位置。不论将这些文件放到哪里,只要他们的相对关系没有变,就不会出错。

另外通常使用“../”来表示上一级目录(上行一个文件夹),“../../”表示上上级的目录(上行两个文件夹)(这里的“上行”,可以理解为向着根目录文件夹方向走),

以此类推。 ./表示“当前目录”。

举例:

1、

C盘A文件夹 下有两个 文件X 和 文件Y

表示文件X的位置(即路径),两种表示方法:

        C:\A\X

        这就是 绝对路径,指明X文件在C盘A文件夹下,从最大的根目录C盘开始表示出来

        X

        这就是 相对路径,因为X文件Y文件都在C:\A下,所以它们的路径前面"C:\A"都是一样,就不用表示出来.

 

2、

C盘A文件夹 有个X文件,还有一个B文件夹,而B文件夹下有个Y文件.

文件X文件Y 绝对路径 分别为:

C:\A\X

C:\A\B\Y

如果让X文件来表示Y文件的路径

绝对路径: C:\A\B\Y

相对路径: B\Y (因为X文件和Y文件前面的C:\A这段路径相同就不用写出)。

 

(折腾完了)



所属网站分类: 技术文章 > python文章

作者:磨子舒

链接: http://www.pythonheidong.com/blog/article/10028/

来源:python黑洞网 www.pythonheidong.com

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0

赞一赞 or 踩一踩

收藏该文
已收藏

评论内容:(最多支持255个字符)

相似文章

  faster-rcnn错误信息 : tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [21] rhs shape= [2]

  Python 123 获取系统的递归深度、当前执行文件路径、系统最大UNICODE编码值等3个信息

  解决tensorflow安装中出现的ERROR: twisted 18.7.0 requires PyHamcrest>=1.9.0, which is not installed.问题

  解决python中的Non-UTF-8 code starting with ‘\xbs4’ in file错误

  python中time.strftime不支持中文,报错UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: encoding error

  Fibonacci Number Established the Environment of Python

  关于Mac使用pip3时报错DistributionNotFound: The 'pip==18.0' distribution was not found and is required

  mysql-python 安装错误: Cannot open include file: 'config-win.h': No such file or directory

  python smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed')

优质资源排行榜

 python经典电子书大合集下载 下载次数 8108

 零基础java开发工程师视频教程全套,基础+进阶+项目实战(152G) 下载次数 7545

 零基础前端开发工程师视频教程全套,基础+进阶+项目实战(共120G) 下载次数 7439

 零基础大数据全套视频400G 下载次数 7002

 零基础php开发工程师视频教程全套,基础+进阶+项目实战(80G) 下载次数 6891

 零基础软件测试全套系统教程 下载次数 6502

 全套人工智能视频+pdf 下载次数 6437

 IOS全套视频教程 基础班+就业班 下载次数 4679

 编程小白的第一本python入门书(高清版)PDF下载 下载次数 3106

10  effective python编写高质量Python代码的59个有效方法 pdf下载 下载次数 3073

11  Python深度学习 pdf下载 下载次数 3044

12  使用python+pygame开发的小游戏《嗷大喵快跑》源码下载 下载次数 2998

13  python项目开发视频 下载次数 2998

14  python从入门到精通视频(全60集)python视频教程下载 下载次数 2994

15  黑马2017年java就业班全套视频教程 下载次数 2992

16  python实战项目 平铺图像板系统源码下载,适用于想要保存,标记和共享图像,视频和网页的用户 下载次数 2987

17  利用python实现程序内存监控脚本 下载次数 2986

18  树莓派Python编程指南 pdf下载 下载次数 2980

19  老男孩python自动化视频 下载次数 2979

20  老王python基础+进阶+项目视频教程 下载次数 2972

21  尚硅谷Go学科全套视频 下载次数 2972

22  某硅谷Python项目+AI课程+核心基础视频教程 下载次数 2967

23  Web前端实战精品课程 下载次数 2966

24  Python基础教程 pdf下载 下载次数 2966

25  tron python小游戏 下载次数 2962

26  [小甲鱼]零基础入门学习Python 下载次数 2959

27  老男孩python全栈开发15期 下载次数 2958

28  2017最新web前端开发完整视频教程附源码 下载次数 2948

29  最新全套完整JAVAWEB2018开发视频 下载次数 2926

30  Python算法教程_中文版 pdf下载 下载次数 2913

31  Spring boot实战视频6套下载 下载次数 2909

32  python全套视频十五期(116G) 下载次数 2901

33  Python项目实战 下载次数 2883

34  python全自动抢火车票教程-python视频教程下载 下载次数 2883

35  30个小时搞定Python网络爬虫 含源码 下载次数 2881

36  尚硅谷大数据之Hadoop视频 下载次数 2876

37  简明python教程 (A Byte of Python)pdf下载 下载次数 2873

38  Python Cookbook第三版中文PDF下载高清完整扫描原版 下载次数 2865

39  Python A~B~C~ python视频教程下载 下载次数 2864

40  数据结构与算法视频(小甲鱼讲解-全) 下载次数 2863

41  web小程序表白天数倒计时源码下载 下载次数 2862

42  python基础视频教程 下载次数 2862

43  Python高性能编程 pdf下载 下载次数 2862

44  go语言全套视频 下载次数 2854

45  利用Python进行数据分析 pdf下载 下载次数 2850

46  清华学霸尹成Python爬虫视频-ok 下载次数 2845

47  黑马前端36期最全视频和代码 下载次数 2841

48  2018最新全套web前端视频教程+源码下载 下载次数 2840

49  老男孩Python自动化开发12期 老男孩最强一期python高级运维开发课程 第二部分 70GB 下载次数 2832

50  笨办法学python pdf下载 下载次数 2828