在软件中经常需要获取文件所在路径,方法有很多种( 例如 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"+"\t"+curr_path0+"\t"+"path0"+"\t"+path0+"\n")
temp_file.write("curr_path1"+"\t"+curr_path1+"\t"+"path1"+"\t"+path1+"\n")
temp_file.write("curr_path2"+"\t"+curr_path2+"\t"+"path2"+"\t"+path2+"\n")
temp_file.write("curr_path3"+"\t"+curr_path3+"\t"+"path3"+"\t"+path3+"\n")
temp_file.write("curr_path4"+"\t"+curr_path4+"\t"+"path4"+"\t"+path4+"\n")
temp_file.close()

  

将该程序放置目录 X:\WZD\NIPT_Analysis_software\NIPT_Analysis-V1.3.02.3下,

然后编写.bat文件来调用NIPT_Analysis-V1.3.02.3.py 程序。将.bat文件放置在目录 X:\WZD\NIPT_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:\WZD\NIPT_Analysis_software下,

运行结果如下:

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

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

python 获取路径不同方法的比较的更多相关文章

  1. Python获取路径下所有文件名

    python 获取当前文件夹下所有文件名   os 模块下有两个函数: os.walk() os.listdir() 1 # -*- coding: utf-8 -*- 2 3 import os 4 ...

  2. python获取路径

    #!/usr/bin/env python import os #文件所在路径(模块路径) print __file__,os.path.realpath(__file__),os.path.absp ...

  3. python 获取路径

    获取目录路径和文件路径 import osfor root, dirs, files in os.walk(".", topdown=False): # ‘.’为获取脚本所在路径下 ...

  4. 使用python获取路径问题

    import sys curDir = sys.path[0] sys.path.append(curDir + '\\models') sys.path.append(curDir + '/mode ...

  5. shell,python获取当前路径(脚本的当前路径) (aso项目记录)

    一.shell获取脚本当前路径 cur_dir=$(cd "$(dirname "$0")"; pwd)  #获取当前脚本的绝对路径,参数$0是当前脚本对象 等 ...

  6. python获取当前文件路径

    python获取当前文件路径 学习了:https://www.cnblogs.com/strongYaYa/p/7200357.html https://blog.csdn.net/heatdeath ...

  7. python获取文件路径

    摘自:https://blog.csdn.net/Poo_Chai/article/details/89764001 import os root_path = os.path.abspath(os. ...

  8. Python获取当前脚本文件夹(Script)的绝对路径

    Python获取当前脚本绝对路径 Python脚本有一个毛病,当使用相对路径时,被另一个不同目录下的py文件中导入时,会报找不到对应文件的问题.感觉是当前工作目录变成了导入py文件当前目录.如果你有配 ...

  9. bat wmic python 获取进程的所在路径

    bat wmic python 获取进程的所在路径 doc: wmic process where name="process-name" get executablepath w ...

随机推荐

  1. 条款44:将与参数无关的代码剥离template

    使用template时,不小心的时候可能就会带来代码膨胀的问题: template<typename T, std::size_t n> class SquareMatrix{ publi ...

  2. Sunday算法

        Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配.其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率 ...

  3. 【phpcms-v9】前台content模块中pc标签的调用说明

    内容模块PC标签调用说明 模块名:content 模块提供的可用操作 操作名 说明 lists 内容数据列表 relation 内容相关文章 hits 内容数据点击排行榜 category 内容栏目列 ...

  4. BZOJ3832 Rally

    传送门(权限) 题目大意 给定一个有向无环图,可以删去一个点和所有与它相连的边,使得图的其余部分最长路径最小,求这个位置和最小的最长路径长度. 题解 对于每一条边$u\rightarrow v$,设$ ...

  5. Git和Github使用说明

    1. 安装 官网地址:https://git-scm.com/downloads 我这里使用的是git version 2.19.1.windows.1,全程傻瓜式安装,点下一步即可,可以把命令模式和 ...

  6. LeetCode LFU Cache

    原题链接在这里:https://leetcode.com/problems/lfu-cache/?tab=Description 题目: Design and implement a data str ...

  7. Visualforce Page CSS样式

    Salesforce Page开发者文档:https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_stylin ...

  8. python3 之 格式化json

    import json json_string = None with open("json_file.json") as f: json_string = f.read() tr ...

  9. 反射ORM 三层(for sql server/mysql)

    sql server and oracle 不同之处只在于: 1·参数@和: 2·自增和序列 RPROM.cs //(写错愕,应该是RPORM) RPROM.Insert(p1); //需求:DBS中 ...

  10. 蓝桥杯 算法训练 ALGO-139 s01串

    算法训练 s01串 时间限制:1.0s 内存限制:256.0MB 问题描述  s01串初始为”0”  按以下方式变换  0变1,1变01 输入格式  1个整数(0~19) 输出格式  n次变换后s01 ...