在软件中经常需要获取文件所在路径,方法有很多种( 例如 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获取绝对路径的区别_python 获取路径不同方法的比较相关推荐

  1. python安装到桌面的路径是什么_Python 获取windows桌面路径的5种方法小结

    这里介绍了5中python获取window桌面路径的方法,获取这个路径有什么用呢?一般是将程序生成的文档输出到桌面便于查看编辑. 前两个方法是通过注册表来获取当前windows桌面绝对路径,比较推荐使 ...

  2. python绝对路径的区别_python学习:绝对路径和相对路径

    大牛们应该对路径都很了解了,这篇文章主要给像我这样的入门小白普及常识用的,啊哈 下面的路径介绍针对windows,其他平台的暂时不是很了解. 在编写的py文件中打开文件的时候经常见到下面其中路径的表达 ...

  3. java获取图片相对路径_相对路径和绝对路径的区别,java获取项目访问路径的方法...

    相对路径和绝对路径的区别 在HTML里只要涉及文件的地方(如超级链接.图片等)就会涉及绝对路径与相对路径的概念.1.绝对路径 绝对路径是指文件在硬盘上真正存在的路径.例如"bg.jpg&qu ...

  4. python post与get的区别_python中get和post有什么区别

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  5. python通过路径找文件_Python寻找路径和查找文件路径的示例

    怎么python系统的查找路径要是爱你爱的少些,话就可以说的多些了.简?奥斯汀 ⒈单击开始,在搜索框输入cmd,然后回车,就会出现命令行界面框后,在里面输入命令python后回车,安装成功的话就可以看 ...

  6. python 爬虫动态网页的区别_Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取...

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  7. python包和库的区别_python中模块、包、库的区别和使用

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  8. python str和repr的区别_python str与repr的区别

    尽管str(),repr()和"运算在特性和功能方面都非常相似,事实上repr()和"做的是完全一样的事情,它们返回的是一个对象的"官方"字符串表示,也就是说绝 ...

  9. java绝对路径和相对路径的区别_相对路径和绝对路径的区别

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://ww ...

最新文章

  1. c++ double float 数值比较
  2. LeetCode Design TinyURL
  3. 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
  4. 2022跨年代码(HTML·资源都是网上的可以直接使用)
  5. linux ptrace 读内存,Linux高级调试与优化——ptrace
  6. 【转】数据库水平扩展与垂直扩展
  7. 高性能python_[转]【原创】High Performance Python(Python 高性能计算)(一)
  8. 计算机网络由 子网,计算机网络系统是由通信子网和资源子网组成的。()
  9. 如何提高服务器网站访问速度,如何有效提升网站打开速度?
  10. BiliBili视频下载
  11. netcore 集成 CAP 使用 rabbitMQ集群
  12. Linux操作系统调优工具
  13. ifm电感式传感器IE5238
  14. 用C++编写个人理财软件
  15. Working with humanoid animations
  16. 管理服务器维护外包,运维外包管理
  17. 以色列通过空袭回应哈马斯的黑客攻击
  18. UML教程1:模型图的构成和功能说明
  19. 如何才能写出优秀作文?猿辅导:生活的观察与感受非常重要
  20. JAVA GUI文字游戏

热门文章

  1. promise.all_所有您需要了解的Promise.all
  2. 中国企业2017年数据_根据数据,2017年最好的免费在线课程
  3. ubuntu三种添加环境变量的方法
  4. 采样率,码率,帧率,I 帧,P 帧,B帧,RTP时间戳
  5. UDP/TCP网络传输方式
  6. flask 框架第一天学习笔记
  7. 挣值管理:PV,AC和EV
  8. 转一篇好文,虽然争议颇多,还是觉得有必要转一下看看 来自博客园
  9. 漫步最优化十九——封闭算法
  10. python安装wxpython库_wxPython:python 首选的 GUI 库