我正在使用python脚本在Windows上构建安装程序。我收集了所有需要的文件,将它们压缩并放在名为\temp
的文件夹中。然后,我调用WINZIPSE.EXE创建自解压EXE。
subprocess.call('"winzipse.exe" "filename.zip" -y -i .\\setup.ico -overwrite -setup -auto -c .\\stp.exe')
它按预期运行命令,但是下一个试图将生成的exe移到另一个文件夹(\EXEs
)中的命令失败:
copyfile(".\temp\filename.exe", ".\EXEs\filename.exe")
PermissionError:[Errno 13]权限被拒绝:'。\ temp \ filename.exe'
发生这种情况的原因是,显然,WINZIPSE.EXE在释放输出文件之前完成了。这迫使我手动去从.\temp
中获取文件。我尝试在copyfile
命令之前添加等待,但是有时等待时间长于所需时间,有时还不够。
我可以想到可以解决此问题的两件事,但是即使有可能,我也无法弄清楚该怎么做:
将输出位置传递到WINZIPSE.EXE,这样我就无需手动复制文件。我在帮助文件中找不到与此相关的任何开关。
找到一种方法来知道文件何时发布,以便我可以从那里继续执行脚本。
有什么建议吗?