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ß
Zeilenbreite vorgeben Py 3.8
-
- 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.
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”)
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 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.
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ß
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ß
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.
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 ...
Und Python selbst hat das textwrap-Modul:
https://docs.python.org/3/library/textwrap.html
https://docs.python.org/3/library/textwrap.html