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()
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐