• 13、python的路径处理


    前言:本文主要介绍python中路径的处理,包括os模块和有关的2个魔法变量。

    一、os模块


    python里面的os模块有许多方法可以让我们通过代码实现创建,删除和更改目录,具体如下:

    • os.getcwd():显示当前的工作路径,只具体到路径,不具体到文件
    • os.path.realpath(path):返回path的真实路径,如果参数是:file,就说明是本文件所在的绝对路径,对比二者的区别?
    • os.path.join(a,b):连接两个部分的路径,组成一个完整的路径
    • os.mkdir(路径名字):在某个目录下创建一个新目录
    • os.rmdir(路径名字):删掉一个目录
    • os.listdir():获取当前路径下的目录列表,返回列表格式数啹
    • os.path.isdir():判断当前文件是否是目录,返回布尔值
    • os.path.isfile():判断当前文件是否是文件,返回布尔值
    • os.chdir(path):将当前工作目录更改为指定路径
    • os.rename(name,newname):修改文件各字

    还有更多的方法有兴趣请自行百度,以下是一些用法参考:

    import time
    import os
    import sys
    
    # sys.path是python的搜索模块的路径集,用list存放
    # 导入的包的搜索路径顺序按sys.path一个个往下找,如果在这些路径下都找不到这个包,就会报错
    
    # 可以通过append()给它增加要使用的包的路径,
    # for i in sys.path:
    #     print(i)
    
    # os模块:对操作系统进行操作的一系列动作都在os模块里
    # 获取当前工作路径,只具体到路径,不具体到文件名
    print(os.getcwd())
    
    # 获取当前文件在操作系统中的绝对路径,具体到文件名
    print(__file__)
    
    # 查看指定文件在系统中的绝对路径
    print(os.path.realpath('test'))
    print(os.path.realpath(__file__))
    
    # os.path.join  拼接路径
    path_01 = 'd:learn'
    path_02 = os.path.join(path_01, 'python')
    print(path_02)
    
    # os.mkdir() :创建目录(文件夹)
    # os.mkdir('test')
    
    # os.rmdir() :删除目录(只能删除空目录),如果目录下有文件,会报错 ,非空目录怎么删除,思考一下?
    # os.rmdir('test')
    
    # 默认返回当前路径下的所有文件和目录信息,以列表形式返回
    print(os.listdir())
    print(os.listdir('d:learn	est'))
    
    # os.path.isfile():判断当前文件是否是文件,返回布尔值  不传入路径默认搜索当前路径
    # os.path.isdir():判断当前文件是否是文件,返回布尔值
    print(os.path.isfile('task.py'))
    print(os.path.isdir('test'))
    
    # od.chdir():切换当前工作路径
    # print(os.getcwd())
    # os.chdir('d:learn')
    # print(os.getcwd())
    
    # 修改文件名
    # os.rename('test.py','test2.py')
    
    # 返回上一级的目录
    dir = __file__
    print(os.path.dirname(dir))

    二、魔法变量


    什么是魔方变量?前后双下划线,系统定义名字(这就是在python中强大的魔法方法),因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格,下面介绍python中的2个魔法变量。

    1) __file__ : 代表当前文件的绝对路径

    2) __name__ : 如果当前文件值程序的启动文件中,它的值是__main__如果不在启动文件中,代表的就是所在的文件(模块)的模块名

    import os
    #  魔术变量的操作
    # print('当前运行文件中打印的__name__:',__name__)
    
    # 路径的处理
    print(__file__)
    
    # 自动化测试项目,用到的路径基本会使用相对路径
    # 这样不管项目放到哪个环境都能正常运行
    
    # 获取文件/目录所在的父级目录
    dir = os.path.dirname(__file__)
    print(dir)
    
    BASEDIR = os.path.dirname(dir)    
    print(BASEDIR)
    
    # 这就是test.py的相对路径,而不是d:python	est	est.py绝对路径
    file_path = os.path.join(BASEDIR, "test.py") 
    print(file_path)
  • 相关阅读:
    html-webpack-plugin & clean-webpack-plugin
    Using webpack-dev-server
    Using Watch Mode
    webpack中devtool的配置方案[开发模式]---[线上模式]
    linux命令系列-mv(移动-重命名)
    洗牌函数[打乱数组的顺序] slice()的新运用 [原来arr.slice(start, end) 的start不是必需的]
    Currency Exchange (POJ1860)(判断正圈)(spfa) 最短路专题
    PTA L3-020 至多删三个字符 (DP) (天梯赛训练)
    Codeforces Round #658 (Div. 2)(D. Unmerge)
    Codeforces Round #656 (Div. 3) (E. Directing Edges)(拓扑排序)
  • 原文地址:https://www.cnblogs.com/miki-peng/p/12230349.html
Copyright © 2020-2023  润新知