Da die genaue Spur des Fehlers von der Frage fehlt, würde ich vermuten, dass der Fehler aufgrund des Anrufs ss.remove()
ist. Von diesem Code ss
scheint ein Datei-Handle zu sein, und (wie der Fehler vorschlägt) Dateiobjekte unterstützen remove()
Methode nicht. Wenn Sie die Datei entfernen möchten, können Sie os.remove(filepath)
verwenden, aber dieser Code scheint das nicht zu tun. Im Moment versucht der Code das Wort aus der Datei zu entfernen (was kein unterstützter Vorgang ist).
Wenn Sie Wörter aus Ihrer Datei entfernen möchten, können Sie mit dem Erstellen einer anderen Datei (wie einer temporären) beginnen, die nur die gewünschten Informationen enthält, und nach Abschluss der Verarbeitung die alte Datei durch ersetzen Diese neu generierte Datei (und möglicherweise die temporäre Datei am Ende entfernen).
Wenn Sie stopwords
aus den Daten ausschließen möchten, können Sie die Daten in einer Liste halten, wie folgt aus:
with open('cde.txt.cleared', 'w+') as output:
with open('cde.ext', 'r+') as ss:
for line in ss:
words = line.strip().split()
for word in words:
if word in stopwords.words('english'):
words.remove(word)
output.write(' '.join(words) + '\n')
Beachten Sie, dass wir die Ausgabedatei im Schreibmodus geöffnet. Beachten Sie auch, dass dieser Code die Anzahl der Leerzeichen zwischen den Wörtern nicht speichert, da er die Zeile in eine Liste konvertiert und die Zeile dann erneut aus diesen Wörtern konstruiert. Wenn das ein Problem ist, denke ich, dass Sie möglicherweise an den Zeichenfolgen arbeiten müssen, anstatt sie in eine Liste aufzuteilen.
Was möchten Sie eigentlich erreichen? –
[Related] (http://stackoverflow.com/questions/21005921/deeleting-a-spezifische-word-from-a-file-in-python) – Idos
Ich wollte Stoppwörter aus einer Datei entfernen – sk79