¿Es posible hacer una secuencia de comandos python que eliminará el archivo .py al final de su ejecución (auto-eliminar) en Windows?¿Cómo hacer que las secuencias de comandos se eliminen automáticamente al final de la ejecución?
Respuesta
No estoy seguro si eliminar un archivo mientras está en la memoria sería una buena idea. Intente ejecutar un archivo por lotes desde el script que cierra el proceso del script, luego borra el archivo del script.
Puede haber un método nativo para autodestruir una secuencia de comandos, pero no tengo conocimiento de ello.
EDIT: Aquí está un ejemplo sencillo de cómo se podría lograr esto usando el método que he descrito:
En el guión
# C:\test.py
import os
os.startfile(r"C:\sampleBatch.bat")
En el lote
# C:\sampleBatch.bat
TASKKILL /IM "process name" #For me, this was "ipy64.exe" because I use IronPython.
DEL "C:\test.py"
Usted no puede incluso necesita matar el proceso para eliminar el archivo, pero es más seguro hacerlo. Espero que esto ayude.
¿Y hay una manera de autodestruirse el archivo por lotes después de cerrar la ¿guión? –
El archivo por lotes debería poder destruir el archivo al cerrar el proceso. Utilice el comando DEL "scriptpathhere" en el archivo por lotes para hacerlo. Pondré un pequeño fragmento en un segundo. – covertCoder
Agregado en algunos códigos de muestra para usted. – covertCoder
De esta manera su programa no depende del sistema operativo.
from os import remove
from sys import argv
remove(argv[0])
Los puntos de bonificación: Al analizar los argumentos de la muy primer argumento que se ponga en sys.argv es igual a "ruta-a-nombre de fichero/filename.py"
respuesta de Neomind parece para hacer el truco Pero si le molesta eliminar el archivo mientras está en la memoria, y está buscando una solución de python pura, entonces podría usar un subproceso para crear un nuevo proceso con el propósito explícito de eliminar su archivo de script original. Algo como esto debería funcionar:
import sys, subprocess
subprocess.Popen("python -c \"import os, time; time.sleep(1); os.remove('{}');\"".format(sys.argv[0]))
sys.exit(0)
Es probable que no sería necesario el tiempo de espera en allí, pero he añadido es sólo para asegurarse de que el proceso de la escritura original se ha dado el tiempo suficiente para cerrar en sí.
En Python 3, debe agregar 'shell = True'. –
No es un método bastante sencillo:
import os
os.remove("insert the file's path")
Si usted está enfrentando problemas, coloque una 'r' antes de la marca a partir citas.
Sí, se puede utilizar el siguiente:
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])
Este script se puede modificar, por supuesto, pero además de que esto debería funcionar
- 1. ¿Cómo hacer que cmake construya fuera de la fuente sin envolver las secuencias de comandos?
- 2. Hacer que un JScrollPane se desplace automáticamente hasta el final
- 3. ¿Cómo evito que se eliminen ciertas funciones?
- 4. secuencias de comandos de ejecución en C++ aplicación
- 5. ¿Cómo hacer que las secuencias de comandos python sean ejecutables en Windows?
- 6. variables en las secuencias de comandos TOAD
- 7. cómo asegurarse de que un archivo se cerrará al final de la ejecución
- 8. Cómo hacer que la aplicación de Android se actualice automáticamente
- 9. ¿Cómo se configuran las secuencias de comandos de Python para que funcionen en Apache 2.0?
- 10. Fundamentos de las secuencias de comandos de MongoDB - Cómo
- 11. ¿Cómo integrar las secuencias de comandos de Sikuli en Selenium?
- 12. Las secuencias de comandos que se ejecutan en jquery.ajax() páginas cargadas ejecutan document.ready demasiado pronto
- 13. ¿Cómo evito que los elementos vacíos que se eliminan se eliminen al dividir cadenas?
- 14. ¿Cómo ejecuto las secuencias de comandos de Groovy como Java desde la línea de comandos?
- 15. Secuencias de comandos eliminadas con jQuery .load
- 16. ¿Cómo pasar el parámetro a las secuencias de comandos ant?
- 17. ¿Esperan las secuencias de comandos todavía vale la pena aprender?
- 18. Prueba de las secuencias de comandos de Python
- 19. ¿Cómo puedo evitar zombies en las secuencias de comandos Perl CGI que se ejecutan en Apache 1.3?
- 20. secuencias de comandos para administrar automáticamente las importaciones o módulos Refactor
- 21. ¿Cómo se ejecutan las secuencias de comandos de Python en Windows?
- 22. Detección estática de errores en las secuencias de comandos Tcl
- 23. C# lenguaje de secuencias de comandos
- 24. ¿Cómo puedo hacer que una aplicación Java se actualice automáticamente?
- 25. Notificaciones de escritorio de las secuencias de comandos de contenido
- 26. Cómo configurar las vistas de Popover para que se eliminen correctamente
- 27. ¿Cómo se pueden depurar las secuencias de comandos o servicios python de forma remota?
- 28. ¿Las variables utilizadas en las funciones de PHP se desarman automáticamente después de la ejecución de la función?
- 29. Cómo llegar al final de la TextArea
- 30. ¿Cómo hacer que un formulario se envíe automáticamente al cargar la página en JavaScript?
¿Por qué quieres esto? – delnan
Puedo pensar en algunas razones;) –
Para actualizar una secuencia de comandos de usar un socket de red, necesito eliminar la secuencia de comandos original después de recibir la actualizada –