zoukankan      html  css  js  c++  java
  • python 获取路径不同方法的比较

    在软件中经常需要获取文件所在路径,方法有很多种( 例如 os.path.realpath(__file__), os.getcwd(), os.path.abspath(__file__),  sys.path[0],  sys.argv[0]),但是各有不同,比较如下:

    在一个NIPT_Analysis-V1.3.02.3.py 的程序中,编写测试代码如下,

    temp_file = open("X:/WZD/temp/tempfile.txt","w")
    curr_path0 = os.path.realpath(__file__)
    curr_path1 = os.getcwd()
    curr_path2 = os.path.abspath(__file__)
    curr_path3 = sys.path[0]
    curr_path4 = sys.argv[0]
    path0 = os.path.dirname(curr_path0)
    path1 = os.path.dirname(curr_path1)
    path2 = os.path.dirname(curr_path2)
    path3 = os.path.dirname(curr_path3)
    path4 = os.path.dirname(curr_path4)
    temp_file.write("curr_path0"+"	"+curr_path0+"	"+"path0"+"	"+path0+"
    ")
    temp_file.write("curr_path1"+"	"+curr_path1+"	"+"path1"+"	"+path1+"
    ")
    temp_file.write("curr_path2"+"	"+curr_path2+"	"+"path2"+"	"+path2+"
    ")
    temp_file.write("curr_path3"+"	"+curr_path3+"	"+"path3"+"	"+path3+"
    ")
    temp_file.write("curr_path4"+"	"+curr_path4+"	"+"path4"+"	"+path4+"
    ")
    temp_file.close()
    

      

    将该程序放置目录 X:WZDNIPT_Analysis_softwareNIPT_Analysis-V1.3.02.3下,

    然后编写.bat文件来调用NIPT_Analysis-V1.3.02.3.py 程序。将.bat文件放置在目录 X:WZDNIPT_Analysis_software下,

    运行.bat文件,完毕后生成"X:/WZD/temp/tempfile.txt 文件,结果是:

    然后用pyinstaller将 NIPT_Analysis-V1.3.02.3.py 打包成NIPT_Analysis-V1.3.02.3.exe文件,并替换.py文件,

    再用.bat文件来调用NIPT_Analysis-V1.3.02.3.exe 程序。将.bat文件放置在目录 X:WZDNIPT_Analysis_software下,

    运行结果如下:

    最终选择curr_path4 = sys.argv[0]作为获取NIPT_Analysis-V1.3.02.3.py 文件路径的方法。

    注释:回过头来看,以上都有些问题,这是由于我当时理解不清,后来发现一篇好的文章,这个写的比较清晰 https://blog.csdn.net/vitaminc4/article/details/78702852

  • 相关阅读:
    HTTP请求行、请求头、请求体详解
    json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES
    php 使用fsockopen 发送http请求
    PHP与Nginx之间的运行机制以及原理
    用户对动态PHP网页访问过程,以及nginx解析php步骤
    sql优化的几种方法
    mysql锁2
    CentOS 7.4系统优化/安装软件
    Linux基本操作命令
    使用远程管理工具Xshell
  • 原文地址:https://www.cnblogs.com/zdwu/p/8118245.html
Copyright © 2011-2022 走看看