Estoy corriendo la línea de comandos de secuencias de comandos de Python desde la barra de tareas de Windows por tener un acceso directo a la intérprete de Python con la secuencia real como parámetro.

Después de que el script ha sido procesado, el intérprete termina y la salida se cierra la ventana que hace imposible la lectura de salida de secuencia de comandos.

¿Cuál es la forma más sencilla de mantener el intérprete de la ventana abierta hasta que se pulsa cualquier tecla?

En archivos de proceso por lotes, se puede concluir que la secuencia de comandos con la pausa. Lo más parecido a esto que he encontrado en python es raw_input() que es sub-óptima debido a que se requiere pulsar la tecla de retorno (en lugar de cualquier tecla).

Alguna idea?

InformationsquelleAutor | 2009-02-23

13 Comentarios

  1. 53

    Es una manera de dejar un raw_input() al final de manera que el script espera a que se presione la tecla Enter antes de que termina.

    • Con Python 3+, esto ha cambiado simplemente input().
    • Esto no es una solución. No sé por qué la contestadora eligió. Las especificaciones fueron «Presione cualquier tecla y no acaba de Entrar». Esta solución funciona con la tecla enter, sólo.
    • Mientras que estoy de acuerdo en que esta respuesta claramente no responde a la pregunta cabe señalar que esta es una de alta en la lista de búsqueda de google para «python pausa» por lo que es útil tener esta respuesta.
    • No creo que tendría sentido para responder a la pregunta, aunque? Si incluso en un comentario?
  2. 41

    Intentar os.system("pause") — he utilizado y trabajado para mí.

    Asegúrese de incluir import os en la parte superior de la secuencia de comandos.

  3. 13

    No hay necesidad de esperar a la entrada, antes de terminar, sólo cambia el comando así:

    cmd /K python <script>

    La /K interruptor de ejecutar el comando que sigue, pero deje el intérprete de comandos de la ventana abierta, en contraste con /C, que ejecuta y luego se cierra.

    • Esto no ayuda en el caso especificado por Bernd: a partir de una secuencia de comandos desde la barra de tareas de acceso directo, a menos que el acceso directo se configura correctamente (que no es el caso por defecto).
    • pero la idea es que el acceso directo se cambia
    • /K requiere para terminar cmd, a través de «salida» o cerrar la ventana con el ratón. Eso es un poco más que una sola pulsación de teclas 🙂
    • Cierto, pero se puede utilizar Alt + Espacio + C, y se evita tener que volver a escribir todos los scripts!
  4. 10

    La mejor opción: os.system('pause') <– esta realidad se mostrará un mensaje diciendo «presione cualquier tecla para continuar», mientras que la adición de sólo raw_input('') imprimirá ningún mensaje, simplemente el cursor estará disponible.

    no relacionados con la respuesta:

    os.system("some cmd command") es realmente un gran comando como el comando se puede ejecutar el archivo por lotes/comandos cmd.

    • Me encontré con el problema de os.system('pause') como usted dijo, y buscó a esta pregunta.
  5. 7

    Es una manera de dejar un raw_input() al final de manera que el script espera a que se presione la tecla enter antes de que termina.

    La ventaja de usar raw_input() en lugar de msvcrt.* cosas es que el primero es una parte del estándar de Python (es decir, absolutamente cruz-plataforma). Esto también significa que la secuencia de comandos se abrirá la ventana de estar vivo después de hacer doble clic en el icono de archivo de secuencia de comandos, sin necesidad de hacer

    cmd /K python <script>
    • +1: Muchas personas pueden encontrar el «Enter» o «Return» clave sin necesidad de hacer grandes errores. Exigente «cualquier tecla» en lugar de devolver parece un poco tonto.
  6. 4

    En Windows, puede utilizar la msvcrt módulo.

    msvcrt.kbhit()
    Devuelve true si una tecla está a la espera de ser leído.

    msvcrt.getch()
    Leer una pulsación de tecla y devolver el carácter resultante. Nada se hizo eco de
    a la consola. Esta llamada de un bloque de
    si al pulsar una tecla no es ya
    disponibles, pero no va a esperar para Entrar
    para ser presionado.

    Si quieres que también funcionan en sistemas tipo Unix, puede intentar esta solución el uso de la termios y fcntl módulos.

  7. 2

    Sí, sé que voy a postear un hilo viejo, pero me gustaría agregar mi voto para
    el uso de input() (3.x y hacia arriba).

    Agregado al final de mi .py script, en efecto, se evita que la ventana de la consola de apertura y de inmediato cierre.

    Como para el «problema» de lo que tecla presionar para cerrar, yo (y 1,000 de los demás, estoy seguro de que) simplemente utilizar la entrada(«Presione Enter para cerrar»).

    Gracias por permitirme agregar a mis 2 centavos 🙂

    .

    • ¿De qué estás hablando, hombre? Él dice que hay derecho a utilizar input que es lo OP que estaba pidiendo. Necesita volver a escribir y deshacerse de el hablador estilo.
  8. 1

    Sobre windows 10 insertar al principio de este:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-

    Extraño, pero funciona para mí!(Junto con la de entrada() al final, por supuesto)

  9. 1

    Hay una manera simple de hacer esto, usted puede utilizar el teclado del módulo de wait función. Por ejemplo, usted puede hacer:

    import keyboard
    print("things before the pause")
    keyboard.wait("esc") # esc is just an example, you can obviously put every key you want
    print("things after the pause")
  10. -1

    Si el tipo de

    input("")

    Va a esperar a que se presione cualquier botón, a continuación, va a continuar. También se puede poner el texto entre comillas.

Dejar respuesta

Please enter your comment!
Please enter your name here