.txt in Windows (CRLF) und nicht in Macintosh (CR) Format speichern

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
Eierlikörchen
User
Beiträge: 17
Registriert: Dienstag 3. November 2020, 12:42

Hallo zusammen,

ich benutze das Python-Skript "CUPP" https://github.com/Mebus/cupp/blob/master/cupp.py
CUPP speichert die erzeugten .txt Dateien im Macintosh (CR) Format ab.

Wie kann ich in einem Pyhton-Skript bestimmen, welches .txt Endformat (also Windows (CRLF))
genutzt werden soll?

Gibt es da eine Möglichkeit?

Danke und Grüße
Simone
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Eierlikörchen: Schau Dir mal an welche Argumente man `open()` so übergeben kann.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Eierlikörchen
User
Beiträge: 17
Registriert: Dienstag 3. November 2020, 12:42

Hey,
ich habe ja nicht viel Erfahrung mit Python, aber ich denke, dass in Zeile 123 der "Knackpunkt" steckt.
Zu dem Befehl "os.linesep" habe ich folgendes gefunden:

The os.linesep is also used in write mode: any "\n" character is converted to the system default line separator: "\r\n" on Windows, "\n" on POSIX, etc.

Wenn ich das richtig verstehen, dann der Unterschied zwischen CRLF und Mac die Zeilenendung in einer .txt. Und durch os.linesep wird nur
ein \n angehängt und nicht ein \r\n

Ist das richtig? Wenn ja, gibt es einen anderen Befehl der hier besser passen würde?

Zu Deiner Frage, ich würde im open-Befehl vielleicht noch ('newline='\r\n\') einfügen, oder?

Danke und Grüße
Eierlikörchen
User
Beiträge: 17
Registriert: Dienstag 3. November 2020, 12:42

Hat sich erledigt.

Wenn ich "os.linesep" durch "\n" ersetze funktioniert es.

Danke und schönes WE
Benutzeravatar
DeaD_EyE
User
Beiträge: 1240
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

DeepL leistet gute Arbeit:
Beim Lesen von Eingaben aus dem Stream ist der universelle Modus für Zeilenumbrüche aktiviert, wenn Newline auf None steht. Zeilen in der Eingabe können auf '\n', '\r' oder '\r\n' enden, und diese werden in '\n' übersetzt, bevor sie an den Anrufer zurückgegeben werden. Wenn es '' ist, ist der universelle Zeilenumbruchsmodus aktiviert, aber Zeilenenden werden unübersetzt an den Anrufer zurückgegeben. Wenn es einen der anderen legalen Werte hat, werden Eingabezeilen nur durch die angegebene Zeichenfolge abgeschlossen, und das Zeilenende wird unübersetzt an den Anrufer zurückgegeben.

Beim Schreiben der Ausgabe in den Stream werden alle geschriebenen '\n'-Zeichen, wenn newline auf None steht, in das Standardzeilentrennzeichen des Systems, os.linesep, übersetzt. Wenn newline auf '' oder '\n' steht, findet keine Übersetzung statt. Wenn Newline einer der anderen gesetzlichen Werte ist, werden alle geschriebenen '\n'-Zeichen in die angegebene Zeichenfolge übersetzt.


Übersetzt mit www.DeepL.com/Translator (kostenlose Version)
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten