python切换目录_Python基础之获取路径与切换路径

一直以为我写了关于路径有关的博客,看了一圈才发现没写,那么现在就来整理下。

一、获取当前路径

os.getcwd()

二、获取当前文件路径:(__file__是当前执行文件)

os.path.abspath(__file__)

三、获取主程序路径

os.path.abspath(sys.argv[0])

四、获取主程序目录

os.path.abspath(sys.path[0])

接下来举个例子看下,创建了两个文件,运行play.py程序。

play.py

#!/usr/bin/env python#_*_ coding: UTF-8 _*_

"""=================================================

@Project -> File : Operate_system_ModeView_structure -> play.py

@IDE : PyCharm

@Author : zihan

@Date : 2020/5/11 14:40

@Desc :

================================================="""

from play1 import *

if __name__ == '__main__':#获取当前路径

print("打印当前路径:", end='')print(os.getcwd())#获取当前文件的路径(__file__是当前执行的文件)

print("打印当前文件路径:", end='')print(os.path.abspath(__file__))#用play1.py里面的函数打印__file__的路径

print("打印当前文件路径(1):", end='')

print_file_path()#打印主程序的路径

print("打印主程序路径:", end='')print(os.path.abspath(sys.argv[0]))#用play1.py里面的函数打印主程序路径

print("打印主程序路径(1):", end='')

print_main_path()#打印主程序目录

print("打印主程序目录:", end='')print(os.path.abspath(sys.path[0]))

play1.py

#!/usr/bin/env python#_*_ coding: UTF-8 _*_

"""=================================================

@Project -> File : Operate_system_ModeView_structure -> play1.py

@IDE : PyCharm

@Author : zihan

@Date : 2020/5/11 14:58

@Desc :

================================================="""

importosimportsysdefprint_file_path():print(os.path.abspath(__file__))defprint_main_path():print(os.path.abspath(sys.argv[0]))

运行结果:

打印当前路径:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结

打印当前文件路径:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play.py

打印当前文件路径(1):F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play1.py

打印主程序路径:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play.py

打印主程序路径(1):F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play.py

打印主程序目录:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结

要区分目录和文件路径:

1. os.getcwd()获取的是当前路径,得到的是当前目录,如果在程序运行过程中有路径切换,那么执行os.getcwd()得到的值是不同的

2. __file__是当前执行的文件,打印__file__的路径,就是当前文件的路径

3. sys.argv[0]是主文件的路径,不管引用了多少个py文件,它始终都是主文件的路径,不会变。

4. sys.path[0]是主程序的目录路径,它同样始终都是主程序的目录,不会变。

五、获取上级目录

os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

os.path.abspath(os.path.dirname(os.getcwd()))

os.path.abspath(os.path.join(os.getcwd(), ".."))

六、获取上上级目录

os.path.abspath(os.path.join(os.getcwd(), "../.."))

七、切换路径

os.chdir(path)

play.py

#!/usr/bin/env python#_*_ coding: UTF-8 _*_

"""=================================================

@Project -> File : Operate_system_ModeView_structure -> play.py

@IDE : PyCharm

@Author : zihan

@Date : 2020/5/11 14:40

@Desc :

================================================="""

from play1 import *

if __name__ == '__main__':#获取当前路径

print("打印当前目录:", end='')print(os.getcwd())#获取上层目录

print("打印当前文件目录的上层目录:", end='')print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))print("打印当前目录的上层目录:", end='')print(os.path.abspath(os.path.dirname(os.getcwd())))print("打印当前目录的上层目录(2):", end='')print(os.path.abspath(os.path.join(os.getcwd(), "..")))#获取上上级目录

print("打印当前目录的上上级目录:", end='')print(os.path.abspath(os.path.join(os.getcwd(), "../..")))#获取当前文件的路径(__file__是当前执行的文件)

print("打印当前文件路径:", end='')print(os.path.abspath(__file__))#用play1.py里面的函数打印__file__的路径

print("打印当前文件路径(1):", end='')

print_file_path()#打印主程序的路径

print("打印主程序路径:", end='')print(os.path.abspath(sys.argv[0]))#用play1.py里面的函数打印主程序路径

print("打印主程序路径(1):", end='')

print_main_path()#打印主程序目录

print("打印主程序目录:", end='')print(os.path.abspath(sys.path[0]))#切换路径到根路径

path = "F:/"os.chdir(path)print("切换后的路径:", end='')print(os.getcwd())

运行结果:

打印当前目录:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结

打印当前文件目录的上层目录:F:\gitplay\Operate_system_ModeView_structure\20200511打印当前目录的上层目录:F:\gitplay\Operate_system_ModeView_structure\20200511打印当前目录的上层目录(2):F:\gitplay\Operate_system_ModeView_structure\20200511打印当前目录的上上级目录:F:\gitplay\Operate_system_ModeView_structure

打印当前文件路径:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play.py

打印当前文件路径(1):F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play1.py

打印主程序路径:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play.py

打印主程序路径(1):F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结\play.py

打印主程序目录:F:\gitplay\Operate_system_ModeView_structure\20200511\路径问题总结

切换后的路径:F:\

这些就是关于一般路径的获取问题了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值