Hier ist das Problem:codierten Text von Strings Entfernen von TXT-Datei lesen
BFLY - The CBOE S&P 500 Iron Butterfly Index BPVIX - CBOE/CME FX British Pound Volatility Index BPVIX1 - CBOE/CME FX British Pound Volatility First Term Structure Index BPVIX2 - CBOE/CME FX British Pound Volatility Second Term Structure Index
ich in eine txt-Datei von https://www.cboe.org/mdx/mdi/mdiproducts.aspx
Beispiel von Textzeilen diese gesamte Liste kopiert und eingefügt
Diese Linien natürlich normal erscheinen in meiner Textdatei, und ich sparte die Datei mit uTF-8-Codierung.
Mein Ziel ist es Python zu verwenden, nur die Symbole aus dieser langen Liste an Streifen aus, .e.g. BFLY, VPVIX etc, und schreibt sie in eine neue Datei
ich den folgenden Code verwende die Datei zu lesen und teilen Sie es:
x=open('sometextfile.txt','r')
y=x.read().split()
Das Problem ist, ich sehe, dass es knallen unbekannte Zeichen und sie beeinflussen meine Fähigkeit, die Liste zu filtern. Beispiel:
print(y[0])
BFLY
Ich vermute, dass diese Charaktere etwas mit der Codierung zu tun, und ich habe ein paar verschiedenen Dinge mit dem Codec-Modul ohne Erfolg versucht. Die Verwendung von .decode ('utf-8') löst einen Fehler aus, wenn versucht wird, es mit den obigen Variablen x oder y zu verwenden. Ich kann .encode ('utf-8') benutzen, was die Dinge offensichtlich noch schlimmer macht.
Das Hauptproblem besteht darin, dass bei dem Versuch, die Liste zu durch Schleife und alle Elemente entfernen, die nicht alle Großbuchstaben sind oder enthalten nicht-alphabetische Zeichen. Beispiel:
y[0].isalpha()
False
y[0].isupper()
False
In diesem Beispiel wird das Symbol BFLY aus der Liste entfernt.
Das lustige daran ist, dass diese Zeichen in einer txt-Datei nicht vorhanden sind, wenn ich so etwas tun:
q=open('someotherfile.txt','w')
q.write(y[0])
Jede Hilfe wäre sehr dankbar. Ich würde wirklich gerne verstehen, warum dies häufig passiert, wenn Sie Text von Webseiten wie diesem kopieren und einfügen.
Können Sie Ihre Frage bearbeiten, wo Sie Datendatei Info zeigen - Verwendung {} Taste Zeilenformatierung zu halten. Ich würde es tun, aber es ist zu kurz, ein Bearbeitungs –
darf ich kopiert und eingefügt und in eine Datei mit vim. Vielleicht ist Ihr Texteditor darauf eingestellt, Dateien in etwas anderem als utf-8 zu speichern? oder vielleicht ist es Anführungszeichen typografische Anführungszeichen zu ändern –
Ich benutze leider Windows Notepad. Wenn ich dasselbe in den Text to notepad ++ kopiere, sehe ich nichts, was auf das Vorhandensein dieser Zeichen hindeuten würde. Vielleicht versuche ich es mit notepad ++ zu speichern. –