[Python] posizionare il cursore

csplit csplitfs a gmail.com
Mer 29 Ago 2012 18:50:31 CEST


Il 29/08/2012 12:31, Lorenzo Sutton ha scritto:
> On 28/08/12 21:59, csplit wrote:
>> Ciao a tutti.
>> Voglio usare Python 3.1.2 secondo il paradigma della programmazione
>> strutturata e ho il problema di posizionare il cursore in termini di
>> riga e colonna nella finestra grafica aperta da IDLE.
>> Cerco qualcosa che assomigli a LOCATE CSRLIN POS LPOS del vecchio qbasic.
>> Es.:
>> leggo un numero da tastiera:
>> np=input("Numero? ")
>> elaboro e stampo il risultato:
>> print (giocata," ",np ,ris)
>> voglio ottenere questo:
>>
>> Numero? 12345  1   12345 I o o
>>                ^
>>              _qui_
>> voglio posizionarmi _qui_ ma non riesco.
>
> Su un terminale (linux) che riconosca gli escape VT100 [1][2] potresti
> fare un hack del genere (Python 2.7):
>
> prompt_string = "Numero: "
> np = raw_input(prompt_string)
> right_pad = len(prompt_string) + len (np)
> move_right_esc = "\033[%dC" % right_pad
> line_up_esc = "\033[1A"
> print line_up_esc + move_right_esc," " * 2, "1" , np,"o" ,"o"

Ecco, questa è la soluzione che cercavo, peccato che non riesca a farla 
funzionare nella finestra di IDLE.

> Ma forse è meglio curses come molti hanno già consigliato :)
>
> Lorenzo.

Sì, mi sto rassegnando all'idea di usare ncurses,

> [1] http://it.wikipedia.org/wiki/VT100

Ottimo link:
> [2] http://ascii-table.com/ansi-escape-sequences-vt-100.php

>> E' possibile?
>> Se sì, come?

Ciao e grazie.


Maggiori informazioni sulla lista Python