通过快捷方式运行Python可执行文件会更改程序运行的位置

时间:2013-02-25 10:35:06

标签: python py2exe

我通过py2exe创建了一个可执行的Python文件。

如果我在其dist文件夹中运行此可执行文件,它运行正常。

该程序需要访问dist文件夹中的文件(带参考数据的txt文件)。

如果我在桌面上为该可执行文件创建了一个快捷方式,程序将运行但无法正常运行。程序似乎运行,因为它的文件夹是快捷方式所在的文件夹,而不是exe所在的位置。因此,它无法找到带有参考数据的这些txt文件。

在我的代码中,我将这些txt文件称为:

ref_correction = np.matrix(np.genfromtxt( 'Reference_Data.txt' ))

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您可以使用__file__变量(其中包含您当前正在编写代码的Python文件的路径)构建数据文件的路径。您可以将其扩展为绝对路径(使用os.path.abspath()),然后仅获取该路径的目录部分,并将其与数据文件的名称连接。

答案 1 :(得分:0)

请改用:

path = os.getcwd()   #Where the 'exe' file is stored 

otherpath = os.path.join(path, '../Folder/SubFolder/') #Creates a new path

创建'.exe'文件时,“__ file __”不再适用于路径,因此您需要使用上面的行获取当前工作目录。这将更新“.exe”和所有必需文件当前所在目录的路径。