写点什么

Python 打包后的 EXE 文件,如何获取同级目录

发布于: 2021 年 05 月 06 日

问题背景

平时我们将 Python 脚本打包可执行文件后,可以发给朋友使用。但是,如果要涉及到每个朋友的信息不一样的时候(比如账号,密码等)就要为程序编写一个配置文件。那么,问题来了,我们并不知道朋友会把程序放在什么目录下执行,也就没有办法将配置文件的路径“写死”在程序中。

当然,你可以强制他把配置文件放到固定位置,比如 C 盘根目录,桌面上等等。

但是体验不是很好,也显得我们"不专业"。

我它推荐的方法是放在可执行文件的同级目录下面。

解决问题的代码片段

import sysimport os print(os.path.dirname(os.path.realpath(sys.executable)))print(os.path.dirname(os.path.realpath(sys.argv[0])))
复制代码

这两种方式都可以获取该执行文件的保存目录,然后我们可以将它和我们的配置文件组合在一起。不推荐使用如下这种方式,

base_dir = os.path.dirname(os.path.realpath(sys.executable))config_path = base_dir + "\\config.ini"
复制代码

因为有的时候你要考虑“要写几个斜线(\)才合适呢?”

推荐的用法如下:

base_dir = os.path.dirname(os.path.realpath(sys.executable))config_path = os.path.join(base_dir, "config.ini")
复制代码

上面这种方式你不用考虑斜线的问题,代码会自动根据运行环境来拼接。


好了,这个小技巧你又"学废"了吗?

用户头像

一个日语专业的程序猿。 2017.09.10 加入

【坐标】无锡 【软件技能】Java,C#,Python 【爱好】炉石传说 【称号】InfoQ年度人气作者,Intel OpenVINO领航者联盟成员 【B站】https://space.bilibili.com/397260706/ 【个人站】www.it-worker.club

评论

发布
暂无评论
Python打包后的EXE文件,如何获取同级目录