一、关于sys.path系统路径
python执行py文件的时候,默认就会把当前运行环境的相关目录增加到sys.path系统路径中。
1.在pycharm中直接运行脚本:
print(sys.path, '00001')
# ['D:\\Test_it', 'D:\\Test_it', 'D:\\Program Files\\JetBrains\\PyCharm 2020.1\\plugins\\python\\helpers\\pycharm_display', 'C:\\Python38\\python38.zip', 'C:\\Python38\\DLLs', 'C:\\Python38\\lib', 'C:\\Python38', 'C:\\Python38\\lib\\site-packages', 'D:\\Program Files\\JetBrains\\PyCharm 2020.1\\plugins\\python\\helpers\\pycharm_matplotlib_backend'] 00001
2.在命令行界面执行脚本:
print(sys.path, '00001')
# ['D:\\Test_it', 'C:\\python38\\python38.zip', 'C:\\python38\\DLLs', 'C:\\python38\\lib', 'C:\\python38', 'C:\\python38\\lib\\site-packages'] 00001
二、os.path.abspath()
获得当前脚本存放的绝对路径。
三、_ _ file _ _
获得当前脚本存放的绝对路径,在pycharm中与Windows命令行界面执行的结果是路径分割符不一致,pycharm给优化成了与win不一致的分隔符。在通过os.path.normpath()与os.path.abspath()优化后,得到的路径就与win系统路径规则一致。
四、os.getcwd()
得到当前脚本的工作目录(并非脚本存放的绝对路径)。
五、对比运行结果
1.在pycharm中直接运行脚本
print(os.path.abspath(__file__))
# D:\Test_it\start.py
print(__file__)
# D:/Test_it/start.py
print(os.path.normpath(__file__))
# D:\Test_it\start.py
print(os.getcwd())
# D:\Test_it
print(os.path.normpath(os.getcwd()))
# D:\Test_it
2.在windows命令行界面执行脚本
print(os.path.abspath(__file__))
# D:\Test_it\start.py
print(__file__)
# D:\Test_it\start.py
print(os.path.normpath(__file__))
# D:\Test_it\start.py
print(os.getcwd())
# C:\Users\Bayer04
print(os.path.normpath(os.getcwd()))
# C:\Users\Bayer04