Wie teile ich eine Textzeichenfolge nach einer expliziten neuen Zeile ('\ n')?Python 3 geteilt (' n')
Leider habe ich statt einer korrekt formatierten CSV-Datei eine lange Textzeichenfolge mit "\ n", wo die neue Zeile wäre. (Beispielformat: "A0, B0 \ nA1, B1 \ nA2, B2 \ nA3, B3 \ n ...") Ich dachte, eine einfache bad_csv_list = text.split('\n')
würde mir eine Liste der zweiwertigen Zellen geben (Beispiel Split ['A0, B0 ',' A1, B1 ',' A2, B2 ',' A3, B3 ', ...]). Stattdessen endet ich mit einer Zelle und "\ n" wird in "\\ n" konvertiert. Ich habe versucht, einen Abschnitt der Zeichenfolge zu kopieren und mit Split ('\ n') zu verwenden, und es funktioniert, wie ich gehofft hatte. Die print-Anweisung für das Dateiobjekt sagt mir folgende:
<_io.TextIOWrapper name='stats.csv' mode='r' encoding='cp1252'>
... so vermute ich, das Problem mit der cp1252 Codierung ist? Anmerkung tho: Notepad ++ sagt, dass die Datei, mit der ich arbeite, "UTF-8 ohne BOM" ist ... Ich habe in der Dokumentation und Umgebung gesucht und versucht, io und codec zu importieren und die open
-Anweisung voranzustellen und encoding='utf8'
zu deklarieren, aber ich bin es mit einem Verlust und ich nicht wirklich Textcodierung. Vielleicht gibt es eine bessere Lösung?
from sys import argv
# import io, codec
filename = argv[1]
file_object = open(filename, 'r')
# file_object = io.open(filename, 'r', encoding='utf8')
# file_object = codec.open(filename, 'r', encoding='utf8')
file_contents = file_object.read()
file_list = file_contents.split('\n')
print("1.) Here's the name of the file: {}".format(filename))
print("2.) Here's the file object info: {}".format(file_object))
print("3.) Here's all the files contents:\n{}".format(file_contents))
print("4.) Here's a list of the file contents:\n{}".format(file_list))
Jede Hilfe wäre sehr dankbar, danke.
Wenn es hilft zu erklären, was mit denen ich zu tun, hier ist der Inhalt der Datei stats.csv:
Albuquerque,749\nAnaheim,371\nAnchorage,828\nArlington,503\nAtlanta,1379\nAurora,425\nAustin,408\nBakersfield,542\nBaltimore,1405\nBoston,835\nBuffalo,1288\nCharlotte-Mecklenburg,647\nCincinnati,974\nCleveland,1383\nColorado Springs,455\nCorpus Christi,658\nDallas,675\nDenver,615\nDetroit,2122\nEl Paso,423\nFort Wayne,362\nFort Worth,587\nFresno,543\nGreensboro,563\nHenderson,168\nHouston,992\nIndianapolis,1185\nJacksonville,617\nJersey City,734\nKansas City,1263\nLas Vegas,784\nLexington,352\nLincoln,397\nLong Beach,575\nLos Angeles,481\nLouisville Metro,598\nMemphis,1750\nMesa,399\nMiami,1172\nMilwaukee,1294\nMinneapolis,992\nMobile,522\nNashville,1216\nNew Orleans,815\nNew York,639\nNewark,1154\nOakland,1993\nOklahoma City,919\nOmaha,594\nPhiladelphia,1160\nPhoenix,636\nPittsburgh,752\nPlano,130\nPortland,517\nRaleigh,423\nRiverside,443\nSacramento,738\nSan Antonio,503\nSan Diego,413\nSan Francisco,704\nSan Jose,363\nSanta Ana,401\nSeattle,597\nSt. Louis,1776\nSt. Paul,722\nStockton,1548\nTampa,616\nToledo,1171\nTucson,724\nTulsa,990\nVirginia Beach,169\nWashington,1177\nWichita,742
Und das Ergebnis aus der Spaltung ('\ n'):
['Albuquerque,749\\nAnaheim,371\\nAnchorage,828\\nArlington,503\\nAtlanta,1379\\nAurora,425\\nAustin,408\\nBakersfield,542\\nBaltimore,1405\\nBoston,835\\nBuffalo,1288\\nCharlotte-Mecklenburg,647\\nCincinnati,974\\nCleveland,1383\\nColorado Springs,455\\nCorpus Christi,658\\nDallas,675\\nDenver,615\\nDetroit,2122\\nEl Paso,423\\nFort Wayne,362\\nFort Worth,587\\nFresno,543\\nGreensboro,563\\nHenderson,168\\nHouston,992\\nIndianapolis,1185\\nJacksonville,617\\nJersey City,734\\nKansas City,1263\\nLas Vegas,784\\nLexington,352\\nLincoln,397\\nLong Beach,575\\nLos Angeles,481\\nLouisville Metro,598\\nMemphis,1750\\nMesa,399\\nMiami,1172\\nMilwaukee,1294\\nMinneapolis,992\\nMobile,522\\nNashville,1216\\nNew Orleans,815\\nNew York,639\\nNewark,1154\\nOakland,1993\\nOklahoma City,919\\nOmaha,594\\nPhiladelphia,1160\\nPhoenix,636\\nPittsburgh,752\\nPlano,130\\nPortland,517\\nRaleigh,423\\nRiverside,443\\nSacramento,738\\nSan Antonio,503\\nSan Diego,413\\nSan Francisco,704\\nSan Jose,363\\nSanta Ana,401\\nSeattle,597\\nSt. Louis,1776\\nSt. Paul,722\\nStockton,1548\\nTampa,616\\nToledo,1171\\nTucson,724\\nTulsa,990\\nVirginia Beach,169\\nWashington,1177\\nWichita,742']
Warum fügt es ein \?
Ich wollte nur antworten ...; -; – u8y7541