欢迎访问Python每天3分钟系列。

每天花3分钟时间,学习或温习一个Python知识点。今天是第060篇:

相对路径 vs 绝对路径

这是文件路径系列的第3篇。很多网友碰到找不到文件的问题,都是因为对Python读取文件路径的知识理解不深。本周的每天3分钟,我们就主要围绕路径问题。

今天主要从概念上再聊一下相对路径和绝对路径。内容是是从我出版的书Python办公效率手册中的一段。

初学者经常会被读取不到文件的问题所困扰。遇到这种问题首先看自己是否有拼写错误,然后就是要理解好本节的内容:文件路径。

1)相对路径

前面的代码在读取文件时,并没有指明文件所在的目录。默认情况下,Python会以执行Python命令的目录为起点查找文件:

with open('zen.txt''r'as f:
    print(f.read())

假设我的程序和数据文件都放在C:maishufiles下:

如果在C:maishu目录下执行Python命令:

python fileslearn_path.py

程序会报错:

FileNotFoundError: [Errno 2] No such file or directory: 'zen.txt'

这是因为在C:maishu目录下并没有zen.txt。zen.txt在C:maishufiles下。有两种方法来处理这个错误:

在C:maishufiles下去执行命令: python learn_path.py,这时因为执行的目录就是在files下,所以去files下可以找到zen.txt,就不会报错了。

仍然在C:maishu下执行命令:python files/learn_path.py,但把代码修改一下:

with open('files/zen.txt''r'as f:
    print(f.read())

因为读取文件的时候写的是”files/zen.txt”,所以会在C:maishu下的files文件夹中去读取zen.txt,也没问题了。

这叫做**相对路径,**Python会以执行脚本的目录为起点去查找文件。

举个例子,帮你更好地理解相对路径:

宝贝的位置是相对于当时说这句话的人所在的位置,在不同的地方说这句话就会导致不同的宝贝地址。

2)绝对路径

相对路径虽然方便,但也有很大的局限性,在不同的目录下执行程序可能会产生不同的结果。为了稳定可靠,我们可以指定文件的完整目录,也就是绝对路径。这样不管在哪里执行程序,都能够正确地读取到文件。

file = "C:/maishu/files/zen.txt"
with open(file, 'r'as f:
    print(f.read())

因为file的路径是从盘符开始的,也就是指定了绝对路径,不管在哪个目录下执行python命令,都会去C:/maishu/files的目录下找zen.txt。

在Windows上,从盘符开始的路径,就是绝对路径,它指明了绝对的地址。

对于Linux或者MacOS的操作系统,绝对路径是从斜杠开始的,比如/users/maishu/files/zen.txt。

用上面的例子来理解绝对路径:

这是一个绝对地址,不管在什么地方告诉你,你都可以正确无误地找到这个绝对地址。

好啦,今天就聊到这里,如果对你有帮助,请帮忙转发。谢谢!

新的一年,想加速Python学习,获得专业的指导,30天学会一门技能!

欢迎参加麦叔Python实战训练营,入门营,爬虫营,办公自动化营同步开放。

详情点这里:

如果你希望我更新某个特定小知识,欢迎给我留言。

我是麦叔,聊编程,聊程序员人生。

相对路径_相对路径_相对路径

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注