Ejecuto Eclipse con PyDev y Python 3.2 en Windows Vista y estaba trabajando en un tutorial sobre Python y ctypes.Eclipse y Python 3: ¿por qué se imprime printf() desde ctypes en la salida de la consola después de las instrucciones print() siguientes
Sin embargo, descubrí que cuando llamo a msvcrt.printf() para imprimir una cadena, esto no se muestra en la salida de la consola para Eclipse hasta que se muestren todas las demás declaraciones de impresión.
Aquí es el código exacto que utilizo:
from ctypes import *
msvcrt = cdll.msvcrt
message_string = "Hello Worlds!\n"
printf = msvcrt.printf
print(printf("Testing: %s".encode('ascii'),message_string.encode('ascii')))
print("foo")
print("why!?")
y aquí está la salida:
23
foo
why!?
Testing: Hello Worlds!
Las únicas explicaciones que he visto en otro lugar (para C en general) mencionan cómo se almacena temporalmente printf y necesita una nueva línea antes de mostrar, pero hay una nueva línea en la cadena, y también agregué una directamente a la declaración de printf ('printf (' Prueba:% s \ n ", ... ') y no hizo ninguna diferencia.
Quiero trabajar en Eclipse, no quiero tener que seguir abriendo un símbolo del sistema cada vez que quiero probar scripts, entonces, ¿hay alguna forma de que pueda solucionar este pedido en la salida de la consola? ¿Y por qué pasa esto?
Estaba siguiendo un tutorial sobre ctypes, que me plan para usar para funciones que no sean printf más tarde. La razón por la que quería entender esto y hacer que funcione es porque si no puedo entender lo que está sucediendo con esta simple tarea, ¿cómo puedo esperar comprender las más complejas? – Brian