Zeilenbreite vorgeben Py 3.8

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benari
User
Beiträge: 8
Registriert: Sonntag 8. September 2019, 15:34

Hallo!

Ich bin Neuling in Python 3.8.

Ich arbeite mit veschiedenen UTF8-Textdateien.
Jetzt sind mir TXT-Dateien untergekommen, die eine sehr große
Zeilenlänge haben. Ich möchte für meine Analysen und Weiterverarbeitung
aber eine festeinstellbare Zeilenbreite erzeugen können.

Für eine Lösung in Py 3.8 wäre ich dankbar.

Gruß: Arrist Spieß
Bolitho
User
Beiträge: 219
Registriert: Donnerstag 21. Juli 2011, 07:01
Wohnort: Stade / Hamburg
Kontaktdaten:

Kannst du uns ein Codebeispiel zeigen, bei dem dein Problem offensichtlich wird?
Feste Zeilenlängen kannst du ja bequem über die zu schreibenden Daten steuern.

Code: Alles auswählen

with open(“hello.txt”, “w”) as f:
    f.write(“Hello World\n”) 
    f.write(“Hello World\n”)
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@Benari: wie willst Du denn die Zeilenbreite „erzeugen”?
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Benari hat geschrieben: Mittwoch 6. November 2019, 20:06 Jetzt sind mir TXT-Dateien untergekommen, die eine sehr große
Zeilenlänge haben. Ich möchte für meine Analysen und Weiterverarbeitung
aber eine festeinstellbare Zeilenbreite erzeugen können.
Kannst vielleicht einen Ausschnitt aus so einer Datei zeigen? Denn an sich würde ich bei TXT-Dateien, die Daten enthalten (so habe ich "Analyse" jetzt zumindest mal interpretiert), denken, dass sie erstens eine bestimmte Struktur haben (und sei es ein Wert pro Zeile oder so etwas) und dass der Inhalt nun mal die Breite hat, die er hat. Vielleicht kann man da etwas trennen etc., aber dafür muss man wissen, was in den Dateien ist und wie sie aufgebaut sind.
Benari
User
Beiträge: 8
Registriert: Sonntag 8. September 2019, 15:34

Hallo, ich bin's nochmal:

Ich arbeite mit verschiedenen UTF8-Textdateien.
Jetzt sind mir TXT-Dateien untergekommen, die eine sehr große
Zeilenlänge haben. Ich möchte für meine Analysen und Weiterverarbeitung
aber eine festeinstellbare Zeilenbreite erzeugen können.


"Als ich vor acht Jahren als Fähndrich in. Z. auf Werbung stund, um sonderlich vor meines Capitains Kompagnie etwa zehn bis zwölf Rekruten anzuwerben, bekam ich auf listige Art einen schönen und wohlgewachsenen Menschen von ohngefähr zwanzig Jahren, welcher seine Studia auf der Schule daselbst absolvierst hatte und bei seinen Eltern nur auf etliche Taler Geld laurete, um damit auf Universitäten zu gehen, womit ihm aber dieselben, weil sie wenig im Vermögen hatten, nicht ..."

* Wie kann ich solch eine Datei einlesen und eine feste Zeilen-Breite mit vernünftiger Trennung (immer bei einem Leerzeichen) erreichen?

Für eine Lösung in Py 3.8 wäre ich dankbar.

Gruß: Arrist Spieß
Benari
User
Beiträge: 8
Registriert: Sonntag 8. September 2019, 15:34

ERgänzung:

Ich dachte so an 66 oder 70 Zeichen pro Zeile.

BenAri
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst die Dateien zu Listen von Worten umwandeln. Also an Leerzeichen auftrennen, mit split. Und dann so lange Worte aufsammeln, bis das nächste Wort + die Anzahl der schon gesammelten Worte (die repräsentieren die Leerzeichen) die eingestellte Spaltenbreite überschreitet.
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Wenn's der Vorverarbeitung dient und du ein Linux/Unix System zur Hand hast, kannst du auch 'fold' verwenden:

Code: Alles auswählen

fold -s -w 66 <<< "Als ich vor acht Jahren als Fähndrich in. Z. auf Werbung stund, um sonderlich vor meines Capitains Kompagnie etwa zehn bis zwölf Rekruten anzuwerben, bekam ich auf listige Art einen schönen und wohlgewachsenen Menschen von ohngefähr zwanzig Jahren, welcher seine Studia auf der Schule daselbst absolvierst hatte und bei seinen Eltern nur auf etliche Taler Geld laurete, um damit auf Universitäten zu gehen, womit ihm aber dieselben, weil sie wenig im Vermögen hatten, nicht ..."
Als ich vor acht Jahren als Fähndrich in. Z. auf Werbung stund, 
um sonderlich vor meines Capitains Kompagnie etwa zehn bis zwölf 
Rekruten anzuwerben, bekam ich auf listige Art einen schönen und 
wohlgewachsenen Menschen von ohngefähr zwanzig Jahren, welcher 
seine Studia auf der Schule daselbst absolvierst hatte und bei 
seinen Eltern nur auf etliche Taler Geld laurete, um damit auf 
Universitäten zu gehen, womit ihm aber dieselben, weil sie wenig 
im Vermögen hatten, nicht ...
Benutzeravatar
snafu
User
Beiträge: 6867
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Und Python selbst hat das textwrap-Modul:
https://docs.python.org/3/library/textwrap.html
Benari
User
Beiträge: 8
Registriert: Sonntag 8. September 2019, 15:34

Hallo, Leute!

Vielen Dank für die wertvollen Tipps.

Gruß: BenAri
Antworten