请问.exe或者.py的程序怎么在运行结束后删除自身呢
本帖最后由 v.ki 于 2020-12-1 16:40 编辑要求可产生临时文件,但是所有程序运行后电脑上无新增加的文件或程序
知道怎么办了
知道怎么办了,创建一个.bat文件可以删除.exe或者.py 然后再del %0删除自身 本帖最后由 suchocolate 于 2020-12-1 15:39 编辑
python写个脚本test.py在IDLE里运行一下就知道了。
import os
print('开始删除...')
os.remove('test.py')
print('删除完成') suchocolate 发表于 2020-12-1 15:37
python写个脚本test.py在IDLE里运行一下就知道了。
感谢,我印象中os操作已经打开的文件会报错,这个方法我想都没想,没想到居然可以,而且会执行删除成功这句话 suchocolate 发表于 2020-12-1 15:27
python写个脚本test.py在IDLE里运行一下就知道了。
这么推理下去你说我改成remove(test.exe)然后打包一下再执行会不会报错 v.ki 发表于 2020-12-1 15:51
感谢,我印象中os操作已经打开的文件会报错,这个方法我想都没想,没想到居然可以,而且会执行删除成功这 ...
程序执行前,系统回会将脚本读取到内存中,程序在内存中运行,脚本后续也没有调用其他文件,所以删除磁盘上的文件是没有问题的。
不过如果是删除已经打开的文件,这个还是得先关闭,在删除,打开的文件算正在调用。 suchocolate 发表于 2020-12-1 16:00
程序执行前,系统回会将脚本读取到内存中,程序在内存中运行,脚本后续也没有调用其他文件,所以删除磁盘 ...
okok我刚才打包了一下用类似的思路,为什么我有sysytem的权限了有所有的执行权还会报错
开始删除...
拒绝访问。: '2.exe' v.ki 发表于 2020-12-1 15:53
这么推理下去你说我改成remove(test.exe)然后打包一下再执行会不会报错
我刚刚试了试,转成exe的话os.remove只能删除其他文件,删除不了自身。 v.ki 发表于 2020-12-1 16:13
okok我刚才打包了一下用类似的思路,为什么我有sysytem的权限了有所有的执行权还会报错
开始删除...
exe和py文件的运行机制不一样的,py的运行是有由解释器python.exe读取.py的内容到内存解释执行,读取完就关闭文件了,所以可以删.py,正在运行的是python.exe。 suchocolate 发表于 2020-12-1 16:22
我刚刚试了试,转成exe的话os.remove只能删除其他文件,删除不了自身。
我想是不是因为exe就是一个单独程序,而py的话你删除的只是代码文件,真正执行的python3还是被装在机器上,而那些代码已经被写入,.py文件只是一个临时的载体 hrp 发表于 2020-12-1 16:31
exe和py文件的运行机制不一样的,py的运行是有由解释器python.exe读取.py的内容到内存解释执行,读取完就 ...
对对,正想说 知道怎么办了,创建一个.bat文件可以删除.exe或者.py 然后再del %0删除自身
页:
[1]