是否可以创建一个python脚本,它将在Windows执行结束时删除.py文件(自删除)?如何让脚本在执行结束时自动删除?
回答
我不确定在内存中删除文件是不错的主意。尝试从关闭脚本进程的脚本运行批处理文件,然后删除脚本文件。
可能有一个本机方法来自毁脚本,但我不知道它。
编辑:这里是你如何能做到这一点通过我介绍的方法,一个简单的例子:
在脚本
# C:\test.py
import os
os.startfile(r"C:\sampleBatch.bat")
在批处理
# C:\sampleBatch.bat
TASKKILL /IM "process name" #For me, this was "ipy64.exe" because I use IronPython.
DEL "C:\test.py"
您不得甚至需要杀死进程来删除文件,但这样做更安全。希望这可以帮助。
是否有办法在关闭后自行破坏批处理文件脚本? – 2012-04-11 19:43:15
批处理文件应该能够在进程关闭时销毁该文件。在批处理文件中使用DEL“scriptpathhere”命令来执行此操作。我会在一秒钟内放出一小段片断。 – covertCoder 2012-04-11 19:51:40
在某些示例代码中为您添加。 – covertCoder 2012-04-11 20:04:58
这种方式使您的程序不依赖操作系统。
from os import remove
from sys import argv
remove(argv[0])
加分点: 当解析参数非常第一个参数您在sys.argv中得到的是相当于“路径到文件名/ filename.py”
Neomind的答案似乎去做把戏。但是,如果在内存中删除文件困扰你,并且你正在寻找一个纯粹的Python解决方案,那么你可以使用子进程创建一个新的进程,其目的是删除原始脚本文件。像这样的东西应该工作:
import sys, subprocess
subprocess.Popen("python -c \"import os, time; time.sleep(1); os.remove('{}');\"".format(sys.argv[0]))
sys.exit(0)
你可能不会需要超时在那里,但我已经添加它只是确保从原始剧本的过程中已经给出了足够的时间来关闭本身。
在Python 3中,您必须添加'shell = True'。 – 2017-10-01 20:56:08
还有一种比较简单的方法:
import os
os.remove("insert the file's path")
如果你面临的问题,将一个“R”起始报价标记之前。
是的,你可以使用以下命令:
import os
import sys
import subprocess
# execute and remove after run
(Your python code)
# end of file
dir = os.getcwd()
os.remove(dir+'\%s' % sys.argv[0])
该脚本可以被修改,当然,但除此之外,这个应该工作
- 1. PHP结束脚本执行全自动
- 2. 如何在Magento订单流程结束时执行脚本?
- 3. 如何在xfce会话结束时执行脚本
- 4. 在动画结束时执行动作
- 5. 意外结束执行脚本之后
- 6. 如何自动执行此VB脚本?
- 7. 如何让Visual Studio在MSTest运行结束时删除Deploy目录
- 8. PHP脚本何时结束?
- 9. 如何让Python脚本在执行后运行powershell脚本
- 10. 当在TFS版本结束时运行时删除项错误
- 11. 将Python脚本作为启动脚本运行时结束?
- 12. 让GDB自动执行在启动时
- 13. 如何在组合动画结束时执行动作?
- 14. 自动执行脚本
- 15. 当动画结束时执行动画
- 16. 执行动画动画结束时
- 17. MVC4:在会话结束时删除自定义的行
- 18. 如何在进程结束后自动关闭`qemu`的执行?
- 19. 如何在动画结束时删除UIView?
- 20. 如何在动画结束时删除课程?
- 21. 如何仅在AIX 5.3上以ksh结束整个脚本时执行陷阱?
- 22. 如何让Hudson CI执行Powershell脚本?
- 23. 我如何在删除行时自动删除图片?
- 24. 创建执行php脚本的crontab并在1小时后自行删除
- 25. 如何自动在日历中删除事件后结束时间?
- 26. 如何在从cygwin运行时结束s Powershell脚本
- 27. 第一次执行后自行删除的脚本
- 28. 如何让bash在每次退出时执行脚本?
- 29. 如何让这个Python脚本在特定时间执行?
- 30. 如何在删除时执行CASCADE?
,你为什么要这样? – delnan 2012-04-11 19:29:41
我可以想到几个原因;) – 2012-04-11 19:30:43
为了从使用网络套接字更新脚本,我需要在收到更新的脚本后删除原始脚本 – 2012-04-11 19:30:54