是否可以創建一個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