Posts Python获取当前文件/所在目录的路径
Post
Cancel

Python获取当前文件/所在目录的路径

环境: python3.8.3

一、 获取路径的方法

1. os.getcwd()

获取文件当前目录的绝对路径

1
C:\WorkSpace\python  # os.getcwd()示例输出

2. sys.path[0]

获取当前工作路径的绝对路径

1
2
3
4
5
6
python day2.py 							#命令行
python ./day2.py 						
./day2.py 								
python C:/WorkSpace/python/day2.py  		

C:\WorkSpace\python  					# sys.path[0]示例输出

(有一些网上的资料说直接执行脚本, 如./demo.py, 会得到相对路径, 但实际测试却返回了绝对路径)

3. __file__

不同的执行方式会返回不同的值

1
2
3
4
5
6
7
8
9
python ./day2.py  #命令行
./day2.py         #__file__示例输出

python day2.py    #命令行
day2.py           #__file__示例输出 

python C:/WorkSpace/python/day2.py   #命令行
./day2.py                            #或
C:/WorkSpace/python/day2.py          #__file__示例输出

4. os.path.abspath(__file__)

5. os.path.realpath(__file__)

以上两种方法都可以获得文件的绝对路径

1
2
C:\WorkSpace\python\day2.py  # os.path.abspath(__file__)示例输出
C:\WorkSpace\python\day2.py  # os.path.realpath(__file__)示例输出

二、 路径有关实用方法

os.path.split()

这个方法将文件完整的路径转化成所在目录和文件名的二元组(数据类型为tuple)

split应传入路径字符串, 由于以上方法返回的路径都是字符串形式, 可以结合以上方法, 如

1
print(os.path.split(os.path.realpath(__file__)))

结果是

1
('C:\\WorkSpace\\python', 'day2.py')	#输出

三、 总结

  • __file__的调用方式简洁, 但由于不同的执行方式, 返回的值也不同, 所以不推荐使用
  • 获取文件当前目录的绝对路径, 可靠的方法有: os.getcwd()sys.path[0]
  • 获取文件的绝对路径,可靠的方法有: os.path.abspath(__file__)os.path.realpath(__file__)
  • 可以将os.path.split作用于文件绝对路径,来获取目录路径和文件名的二元组

四、 相关链接

This post is licensed under CC BY 4.0 by the author.