Python: Wie Schreibe ich eine Liste von strings in separaten Zeilen, aber ohne eine Leerzeile

EDIT: Siehe unten der post für den gesamten code

Ich bin neu in diesem forum und ich habe ein Problem, ich wäre dankbar für jede Hilfe bei der Lösung.

Situation und Ziel:
- Ich habe eine Liste von strings. Jeder string ist ein Wort, wie dieses: ['WORT', 'LINKS', 'ZITAT' ...] und so weiter.
- Ich würde gerne schreiben, diese Liste von Wörtern (Zeichenfolgen), die auf separaten Zeilen in eine neue text-Datei.
- Würde man denken, die Möglichkeit, dies zu tun wäre durch Anhängen von '\n' für jedes Element in der Liste, aber wenn ich das mache, erhalte ich eine leere Zeile zwischen jedem Listenelement. WARUM?

Bitte haben Sie einen Blick auf diese einfache Funktion:

def write_new_file(input_list):
    with open('TEKST\\TEKST_ny.txt', mode='wt') as output_file: 
        for linje in input_list:
            output_file.write(linje + '\n')

Dieser erzeugt eine Datei, die wie folgt aussieht:

WORD

LINKS

QUOTE

Wenn ich entfernen Sie die '\n', dann wird die Datei sieht wie folgt aus:

WORDLINKSQUOTE 

Stattdessen die Datei sollte wie folgt Aussehen:

WORD   
LINKS   
QUOTE

Bin ich offensichtlich etwas falsch, aber nach viel Experimentieren und Lektüre rund um das web, ich kann nicht scheinen, um es richtig zu machen.

Jede Hilfe wären wir sehr dankbar, vielen Dank!

Antwort, link zum thread über write() und writelines():
Writelines() nicht dieses Problem beheben, indem selbst, es führt zum selben Ergebnis wie write() ohne das '\n'. Es sei denn ich füge einen Zeilenumbruch zu jedem Punkt der Liste vor der übergabe an die writelines(). Aber dann sind wir wieder bei der ersten option und die leeren Zeilen...

Ich versuchte, verwenden Sie eine der Antworten in dem verlinkten thread, mit '\n'.join() und schreiben(), aber ich bekomme immer noch die leeren Zeilen.

Es kommt unten zu diesem: aus irgendeinem Grund bekomme ich zwei neue Zeilen für jedes '\n', egal wie ich es verwenden. Ich bin .strip()'ing die Liste der Elemente des neue-Zeile-Zeichen, um sicher zu sein, und ohne die nl ist alles nur ein massiver block, der Texte sowieso.

Auf die Verwendung eines anderen Editors: ich habe versucht, öffnen Sie die txt-Datei im windows-notepad und notepad++. Einen Grund, warum diese Programme würde nicht korrekt anzeigen lassen?

EDIT: das ist der komplette code. Sorry für die Norwegische Bezeichnung. Der Zweck des Programms ist zu Lesen und zu bereinigen, eine text-Datei und wieder die Worte zuerst als Liste und schließlich als eine neue Datei, die mit jedem Wort in einer neuen Zeile. Die text-Datei ist eine Liste von Scrabble-Wörter, so ist es ziemlich groß (9 mb oder so). PS: ich bin kein Befürworter Scrabble-Betrug, das ist nur eine Programmier-übung 🙂

def renskriv(opprinnelig_ord):
    nytt_ord = ''
    for bokstav in opprinnelig_ord:
        if bokstav.isupper() == True:
            nytt_ord = nytt_ord + bokstav
    return nytt_ord

def skriv_ny_fil(ny_liste):
    with open('NSF\\NSF_ny.txt', 'w') as f: 
        for linje in ny_liste: 
            f.write(linje + '\n')


def behandle_kildefil():
    innfil = open('NSF\\NSF_full.txt', 'r')
    f = innfil.read()
    kildeliste = f.split()
    ny_liste = []
    for item in kildeliste:
        nytt_ord = renskriv(item)
        nytt_ord = nytt_ord.strip('\n')
        ny_liste.append(nytt_ord)
    skriv_ny_fil(ny_liste)
    innfil.close()

def main():
    behandle_kildefil()

if __name__ == '__main__':
    main()
verwenden writelines und sehen diese Frage.
öffnen Sie TEKST_ny.txt in einen anderen editor ?
Die \n springt zur nächsten Zeile und eine neue Zeile wird gestartet, von dort aus geben Sie eine Lücke
Welches OS und welchen text-editor verwenden Sie? Es sieht aus wie Sie auf windows und python schreiben "\r\n" für jede neue Zeile-Zeichen (denn das ist es, was eine neue Zeile unter Windows), aber dein text-editor ist unix-basiert und ist die Interpretation der beiden \r und \n als neue-Zeile-Zeichen.
wenn Sie with open('TEKST\\TEKST_ny.txt') as f: print(repr(f.read()), was gedruckt wird?

InformationsquelleAutor editionagenda | 2015-05-21

Schreibe einen Kommentar