Add newline, string, cross-Plattform

Ich bin generieren Sie text in meiner Anwendung. Da der text Teil einer größeren Nachricht, manchmal muss ich hinzufügen Zeilenumbrüche, manchmal nicht:

NEWLINE = '\n'  # TODO: how to define this cross-platform? Can I use os.linesep?

def get_txt(add_newline=False):
    txt = 'Hello'
    if add_newline:
        txt += NEWLINE
    return txt

Diese könnte wie folgt verwendet werden:

def get_message():
    msg = get_txt(True)
    msg += get_txt(True)
    msg += get_txt(False)
    return msg

Was wieder:

Hello
Hello
Hello (no newline here)

Wie kann ich definieren NEWLINE in einer plattformübergreifenden Weise? Oder noch besser: gibt es eine Funktion in der Standardbibliothek (oder in python), die können fügen Sie einen Zeilenumbruch in einen string? (nicht unbedingt beim drucken, fügen Sie einfach ein newline, um den string im Speicher). Die newline verwendet werden sollte, die richtige für die Plattform wurden von python ausgeführt wird

Haben Sie versucht, die os.linesep wie Sie bereits erwähnt in dem Kommentar in deinem code?
Ich habe keinen Windows-Rechner zu testen, und ich habe gesehen, Verweise gegen die Verwendung os.linesep (stackoverflow.com/q/21636213/647991). Ich würde gerne wissen, was ist der kanonische Weg der Einbindung, die Zeilenumbrüche in strings, ohne Druck. Was ich brauche, ist wahrscheinlich das, was print macht intern mit den Zeilenumbrüchen, aber ich bin mir nicht sicher.
So...das sollte es beantworten...Nein?...es ist eine Umsetzung details, die Sie nicht brauchen, um Bedenken...Je nachdem, welche Plattform Sie schreiben noch die Datei, Python wird stellen Sie sicher, dass die Zeile mit der entsprechenden Zeile endet.
Nein, tut es nicht. Wie Baue ich einen string in memory-mit Zeilenvorschub Trennzeichen in ein cross-Plattform-Weg? Sollte ich \n auf allen Plattformen? Ich denke, meine root-Frage ist: sind die in-memory-newline-Separatoren in verschiedenen windows-und linux-oder hat dieser Unterschied nur gibt es auf IO gesicherten Daten (Dateien und Klemmen)?
Lesen, der link lässt mich vermuten, dass sollten Sie nur verwenden '\n' und python behandelt die Konvertierung auf windows, wenn(falls) es ist immer nötig... wie zB wenn in eine Datei geschrieben?

InformationsquelleAutor dangonfast | 2016-02-26

Schreibe einen Kommentar