我用python编写了代码,打开了一个模板excel文件。每天午夜,它都会将模板复制到一个新的excel文件中,代码会在其中记录当天的数据。我的目标是使用pyinstaller创建一个包含我的代码和模板excel文件的可执行文件
基本上,我希望通过将excel文件捆绑到从pyinstaller获得的exe文件中,能够打开模板excel文件,而不管计算机是否包含该文件:
现在我打开excel文件,如下所示:
import os
import openpyxl
theFile = openpyxl.load_workbook(os.getcwd()+"\templateExcel.xlsx")
currentSheet = theFile[theFile.sheetnames[0]]
但是,当我将excel文件作为--add-data "templateExcel.xlsx;templateExcel.xlsx
包含到pyinstaller命令中并运行exe文件时,它无法检测templateExcel文件的位置。我知道,通过在不同的计算机上运行,os.getcwd()提供了不同的路径,因此它显然无法打开excel文件。因此,我需要一种方法将excel文件捆绑到exe文件中,这样python代码就可以在任何计算机上都能找到它
你可以使用; Adding a data file in Pyinstaller using the onefile option
概括地说:
和示例python脚本:
请注意: 使用“getcwd()”时,您将不会收到所需的结果,它将为您提供执行exe文件的位置
例如,查看以下长模块:
如果从不同的位置执行,将得到不同的结果:
如果PyInstaller像您假设的那样工作(相对于某个模块放置文件),您可以使用file而不是getcwd(),因为它指示模块所在的位置(该位置是常量,与执行exe的位置不同),但它不是
不管怎样,@Sezer-BOZKIR的回答应该足够了,请注意我在那里添加的评论
相关问题 更多 >
编程相关推荐