python程序打包exe之后运行之后删除自身。
生成一个临时的bat文件,文件编码绝对不能使用utf-8.
懒得写了,直接上程序了。
import subprocess
import os
import sys
#获取当前文件所在路径,
pypath=os.path.split(os.path.realpath(__file__))[0]
#生成临时bat文件的完整路径
batfilepath=os.path.join(pypath,"~1.bat")
#获取当前运行exe文件的完整路径
pyexefilename=sys.argv[0]
#创建一个bat文件
batfile="""
@echo off\n
:loop
ping 127.0.0.1 -n 3 >nul
del {}
if exist {} (goto loop) else (del %0)
""".format(pyexefilename,pyexefilename)
#写bat文件
with open(batfilepath,"w",encoding="gbk") as f:
f.write(batfile)
f.close()
def run_batch_file(file_path): # 执行bat文件函数
subprocess.Popen(file_path, creationflags=subprocess.CREATE_NEW_CONSOLE)
print('删除中...')
run_batch_file(batfilepath)
sys.exit()