user12256770
user12256770

Reputation:

How to delete an .exe file written in Python from within the .exe file?

I am trying to create a script which clones a github repository into the current directory and then deletes the script which called it.

The script is written in Python 3.7.4 and is compiled into an .exe. I've tried using os.remove(sys.argv[0]) which works before compiling but will not work for my end application. I have also tried several other deletion methods however none of them worked at all, either with or without compiling into an .exe.

import os

def function:
    # code

def main():
    function()
    os.remove(sys.argv[0])

I'm looking to have the .exe delete itself after running like the .py file does however I don't know the actual method to go around doing this.

Upvotes: 7

Views: 2116

Answers (1)

Saswath Mishra
Saswath Mishra

Reputation: 307

You can write a batch file to delete the Python file after execution but I am not sure if that is a good idea. It is definitely possible though.

C:\test.py:

import os
os.startfile(r"C:\test.bat")

C:\test.bat:

TASKKILL /IM "process name" 
DEL "C:\test.py"

Upvotes: 6

Related Questions