一. Python 獲取當前文件路徑方法
2. sys.path[0]
獲取文件當前工作目錄路徑(絕對路徑)
sys.argv[0]|獲得模塊所在的路徑(由系統決定是否是全名)
若顯示調用python指令,如python demo.py,會得到絕對路徑;
若直接執行腳本,如./demo.py,會得到相對路徑。
3. __ file __
獲得文件所在的路徑(由系統決定是否是全名)
若顯示執行Python,會得到絕對路徑;
若按相對路徑來直接執行腳本./pyws/path_demo.py,會得到相對路徑。
4. os.path.abspath(__ file __)
獲得文件所在的路徑(絕對路徑)
6. os.path.split(os.path.realpath(__ file __))
將文件路徑名稱分成頭和尾一對,生成二元元組。(文件目錄,文件名)
https://docs.python.org/2/library/os.path.html#os.path.split
二. 舉個栗子
1. Source code
import os
import sys
print("sys.path[0] = ", sys.path[0])
print("sys.argv[0] = ", sys.argv[0])
print("__file__ = ", __file__)
print("os.path.abspath(__file__) = ", os.path.abspath(__file__))
print("os.path.realpath(__file__) = ", os.path.realpath(__file__))
print("os.path.dirname(os.path.realpath(__file__)) = ",
os.path.dirname(os.path.realpath(__file__)))
print("os.path.split(os.path.realpath(__file__)) = ",
os.path.split(os.path.realpath(__file__)))
print("os.path.split(os.path.realpath(__file__))[0] = ",
os.path.split(os.path.realpath(__file__))[0])
print("os.getcwd() = ", os.getcwd())
2. Result
(1) Pycharm project中顯示調用python指令,獲取文件絕對路徑
C:\Python364\python.exe C:/PyCharm/PycharmProject/get_path/path_demo.py
sys.path[0] = C:\PyCharm\PycharmProject\get_path
sys.argv[0] = C:/PyCharm/PycharmProject/get_path/path_demo.py
__file__ = C:/PyCharm/PycharmProject/get_path/path_demo.py
os.path.abspath(__file__) = C:\PyCharm\PycharmProject\get_path\path_demo.py
os.path.realpath(__file__) = C:\PyCharm\PycharmProject\get_path\path_demo.py
os.path.dirname(os.path.realpath(__file__)) = C:\PyCharm\PycharmProject\get_path
os.path.split(os.path.realpath(__file__)) = ('C:\\PyCharm\\PycharmProject\\get_path', 'path_demo.py')
os.path.split(os.path.realpath(__file__))[0] = C:\PyCharm\PycharmProject\get_path
os.getcwd() = C:\PyCharm\PycharmProject\get_path
Process finished with exit code 0
(2)Terminal中直接執行Python腳本,獲取文件相對路徑
C:\PyCharm\PycharmProject\get_path>python path_demo.py
('sys.path[0] = ', 'C:\\PyCharm\\PycharmProject\\get_path')
('sys.argv[0] = ', 'path_demo.py')
('__file__ = ', 'path_demo.py')
('os.path.abspath(__file__) = ', 'C:\\PyCharm\\PycharmProject\\get_path\\path_demo.py')
('os.path.realpath(__file__) = ', 'C:\\PyCharm\\PycharmProject\\get_path\\path_demo.py')
('os.path.dirname(os.path.realpath(__file__)) = ', 'C:\\PyCharm\\PycharmProject\\get_path')
('os.path.split(os.path.realpath(__file__)) = ', ('C:\\PyCharm\\PycharmProject\\get_path', 'path_demo.py'))
('os.path.split(os.path.realpath(__file__))[0] = ', 'C:\\PyCharm\\PycharmProject\\get_path')
('os.getcwd() = ', 'C:\\PyCharm\\PycharmProject\\get_path')
三. 參考