Seitenumbruch mit dem Python-Cmd-Modul

8

Ich entwickle eine Python-App mit dem Modul cmd .

Einige Nachrichten an den Benutzer werden ziemlich lang sein und ich möchte sie paginieren. Die ersten 10 (oder eine konfigurierbare Anzahl) Zeilen der Nachricht würden erscheinen, und das Drücken der LEERTASTE würde die nächste Seite bis zum Ende der Nachricht anzeigen.

Ich möchte hier nichts neu erfinden, gibt es einen einfachen Weg, dieses Feature zu implementieren?

    
Gra 06.02.2009, 16:21
quelle

4 Antworten

4

Die einfache Sache wäre, Ihr Skript zur Laufzeit durch "less" oder einen ähnlichen Befehl zu leiten.

Hier ist eine einfache Methode, die ungefähr das tut, was Sie wollen:

%Vor%

Sie könnten auch nach Fluchen suchen.

    
Yoni Samlan 06.02.2009 16:42
quelle
3

Wie Yoni oben gesagt hat, besteht der richtige Weg darin, eine Druckmethode bereitzustellen, die automatisch in Ihrer laufenden cmd-Instanz paginiert. Der Konstruktor von Cmd übernimmt die Argumente stdin und stdout. Stellen Sie einfach ein Objekt bereit, das wie stdout funktioniert und Ihre Paging-Druckmethode unterstützt.

%Vor%     
Trey Stout 30.03.2009 21:07
quelle
1

Ich hatte dieselbe Frage. Es gibt einen Pager, der im pydoc Modul integriert ist. Ich habe es so eingearbeitet (was ich hackisch und unbefriedigend finde ... Ich bin jedoch offen für bessere Ideen).

Ich mag die Idee, dass es autopage wird, wenn es mehr als x Ergebnisse gibt und Paging aktiviert ist, was möglich ist, aber hier nicht ausgeführt wird.

%Vor%     
Gregg Lind 04.09.2009 17:31
quelle
0

Paging-Subroutinen finden Sie in der genutils.py Datei von IPython (siehe page , oder page_dumb für einen einfacheren). Der Code ist ein wenig kompliziert, aber das ist wahrscheinlich unvermeidbar, wenn Sie versuchen, auf Systeme wie Windows und die verschiedenen Arten von Terminal-Emulatoren portierbar zu sein.

    
Jouni K. Seppänen 02.04.2009 07:37
quelle

Tags und Links