Spezielle nationale Zeichen werden in Python nicht .plit ()

Ich habe Schwierigkeiten in Python, beim Lesen von speziellen nationalen Zeichen aus einer Textdatei.

with open("../Data/DKsnak.txt") as f: content = f.readlines() str1 = content[0] print "string:",str1 lst1 = str1.split() print "list:",lst1 

Die Ausgabe ist eine Folge:

  • Open () und codecs.open () in Python 2.7 verhalten sich seltsam anders
  • Drucken auf UTF-8 codierte Datei mit plattformabhängigen Zeilenumbrüchen?
  • HEX-Decodierung in Python 3.2
  • Warum python json.dumps klagt über ascii decoding?
  • Video kann nicht mit opencv geöffnet werden
  • Öffnen Sie DivX / XVID Videos in OpenCV Python
  •  string: Udtræk fra observatør på årstal list: ['Udtr\xc3\xa6k', 'fra', 'observat\xc3\xb8r', 'p\xc3\xa5', '\xc3\xa5rstal'] 

    Die erste Zeile ist wie erwartet, einschließlich der besonderen dänischen Charter. Aber sie überleben nicht, in eine Schnur aufgeteilt zu werden. Ich habe verschiedene Tricks mit Codecs und Unicode ausprobiert, kann aber den magischen Bullit nicht finden.

    Bitte kann jemand vorschlagen, wie ich diese Worte in Listen bekomme, also kann ich mit ihnen als solche arbeiten.

    Mit freundlichen Grüßen Martin

    Laufen: Python 2.7.5 (Standard, Feb 19 2014, 13:47:28) [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] auf Linux2

  • Rufen Sie einen anderen Klick-Befehl aus einem Klick-Befehl
  • Parse Konfigurationsdateien, Umgebungs- und Befehlszeilenargumente, um eine einzelne Sammlung von Optionen zu erhalten
  • Python-Befehlszeilenausführung
  • Elegantes Kommandozeilen-Argument für PyQt parsing
  • Wie man mehrere Sub-Befehle mit python argparse analysiert?
  • Python-Subprozess-Argumente
  • 3 Solutions collect form web for “Spezielle nationale Zeichen werden in Python nicht .plit ()”

    Dein Code ist in Ordnung. python speichert einfach so seine Sonderzeichen. Wenn du deinen Text ausdruckst, bekommst du immer noch die Originalzeichenfolgen:

     s = 'Udtræk fra observatør på årstal' s = s.split() for i in s: print i [OUTPUT] #all fine Udtræk fra observatør på årstal 

    Von https://docs.python.org/2.7/howto/unicode.html :

     import codecs f = codecs.open('unicode.rst', encoding='utf-8') 

    So bekommst du Unicode und kann sich teilen.

    Verwenden Sie die for-Schleife wie bereits erwähnt, wenn Sie wollen, dass sie auf der gleichen Zeile:

     for i in len(list1): string += list1[i] + ' ' print(string) 
    Python ist die beste Programmiersprache der Welt.