Seite 1 von 1
Zeilenlänge der Konsole bestimmen
Verfasst: Sonntag 23. Juni 2019, 08:04
von Hartmannsgruber
Servus liebes Forum,
ich hätte eine vermutlich ganz einfache Frage, nur habe ich im Internet leider keine Lösung dazu finden können.
Es handelt sich dabei um ein Programm das ich auf der Konsole ausführe.
Wie kann ich die Breite des Konsolenfensters, sprich die maximale Anzahl an Zeichen feststellen die in eine Zeile geschrieben werden kann
ohne das ein Umbruch stattfindet?
Grund:
Ich möchte einen Trennstrich "########" ausgeben lassen der von links nach rechts verläuft und im kleinen, sowie im maximierten Fenster genau von einer
Seite zur anderen Seite reicht.
LG
Hartmannsgruber
Re: Zeilenlänge der Konsole bestimmen
Verfasst: Sonntag 23. Juni 2019, 08:58
von snafu
Code: Alles auswählen
import shutil
def fill_terminal_line(character):
size = shutil.get_terminal_size()
line_width = size.columns
print(line_width * character, end='')
Die Ausgabe geht aber kaputt, falls anschließend die Fenstergröße verändert wird. In welchem Zusammenhang brauchst du das denn? Nutzt du ein linuxbasiertes oder ein Windows-System?
Re: Zeilenlänge der Konsole bestimmen
Verfasst: Sonntag 23. Juni 2019, 09:15
von Hartmannsgruber
Servus snafu,
vielen Dank für deine Antwort.
Ich habe ein kleines Skript geschrieben, dass mir eine .CSV Datei auflistet.
Zwischen den einzelnen Datensätzen soll eine horizontale Trennline dadurch eingefügt werden.
Würde sich mein angesprochenes Problem etwa auch anders lösen lassen?
Ich nutze sowohl Linux als auch Windows.
Linux (Netrunner KDE und Fedora GNOME) auf Laptop und normalen Hauptrechner, aber auf einen Tablet das ich betrieblich nutze läuft Windows 10.
Re: Zeilenlänge der Konsole bestimmen
Verfasst: Sonntag 23. Juni 2019, 09:32
von __deets__
Das ist schon die richtige Vorgehensweise. Man kann sich zur Not für ein signal registrieren, das einem mitteilt, wann sich die terminal Größe geändert hat. Ob das aber gerechtfertigt ist, wage ich zu bezweifeln. Wenn man so flexibel sein will, kann man auch gleich zum GUI toolkit greifen.
Re: Zeilenlänge der Konsole bestimmen
Verfasst: Sonntag 23. Juni 2019, 09:35
von snafu
Es würde sich robuster, aber dann auch komplizierter lösen lassen. Stichwort wäre die ncurses-Bibliothek, die es jedoch nur für Linux-Systeme gibt (daher fragte ich). Das ist sinnvoll, wenn es um Benutzeroberflächen im Terminal geht, die den ganzen Bildschirm füllen (Dateimanager im Terminal, das Linux Tool top, der nano-Editor, usw). Für den Fall von übersichtlichen Dateiausgaben ist der Ansatz mit print() aber ausreichend.