几种不同的路径用法

之前提到过可以在代码块中用os.path.dirname(__file__)来获取当前 Main.py 文件所在的 codes 文件夹路径,现在再详细讨论一下其含义,并介绍其他几种不同的路径方法。

os.path.dirname 用于对给定路径进行去掉文件名,返回目录的操作,而代码中的 __file__ 表示当前文件 Main.py 的路径,因此去掉文件名之后的结果就是当前项目的 codes 文件夹的路径。

尝试一下将 __file__ 改为某个具体路径试试:

>>> print(os.path.dirname(r'C:\Users\yury\Desktop\1.py'))
C:\Users\yury\Desktop

结果符合预期


另一种路径为 os.path.abspath,作用是返回文件的绝对路径,尝试在代码块中运行以下代码:

print(os.path.abspath(__file__))

得到如下结果:
C:\iS-RPA\studio-v6\project\NewProject1\codes\Main.py 其中 NewProject1 为项目的名称

接下来试着把 __file__ 改为不含路径,直接写文件名的内容:

>>> print(os.path.abspath('1.png'))
C:\iS-RPA\studio-v6\1.png

这是由于 os.path.abspath 在直接写文件名的时候获取到的是当前进程工作目录下的某个文件所在的路径,对应到设计器中,由于设计器所在的进程对应的路径为 C:\iS-RPA\studio-v6\,因此结果也是在这个路径下的。

换成用 notepad编辑器执行试试看:
D:\Notepad++\1.png
得到的结果为 notepad程序所在的文件夹中的 1.png 文件

与此类似的是 os.getcwd(),得到的结果是当前进程的工作目录,也就是上面的步骤得到路径的父目录。