2017-12-29 6 views
-1

Ich möchte eine CSV-Zeile neu schreiben, wenn eine Zeichenfolge mit 'a' oder 'the' beginnt. Wir können dafür den string.startswith() verwenden.Wie kann man ein bestimmtes Wort aus einer Zeichenkette in CSV (in Python) entfernen?

Das Problem wie folgt angegeben werden kann, grob:

if string.startswith('A' or 'The') 
    remove 'a' and 'the'; keep the rest of the string; rewrite the row 

die CSV Angenommen ist:

ID Book    Author 
1. A Study in Scarlet Conan Doyle 
2. Aboltabol   Sukumar Roy 
3. The Bible   Matthew 

Es sollte wie folgt aussehen:

ID Book    Author 
    1. Study in Scarlet Conan Doyle 
    2. Aboltabol   Sukumar Roy 
    3. Bible    Matthew 

Wie tun wir dies in Python?

+0

Keines der Beispiele sieht wie * durch Komma getrennte Werte * aus (obwohl das Trennzeichen nicht zwingend ein Komma sein muss). Sie ähneln jedoch der String-Darstellung von Pandas DataFrames. –

+0

Haben Sie bereits Code zum Lesen der CSV-Datei? Wenn Sie haben, bitte geben Sie es an. –

Antwort

1

Stellen Sie mit dem regulären Ausdrücken Modul

import re 

pattern = re.compile("^(A|The)\s+(.+)", flags=re.IGNORECASE) 

def process(word): 
    w = pattern.match(word) 
    return w.group(2) if w else word 

process('A Study in Scarlet') # 'Study in Scarlet' 
process('Aboltabol') # 'Aboltabol' 
process('The Bible') # 'Bible' 

Obwohl, wenn Sie die Leistung benötigen, startswith + split ist schneller.

+0

Danke. Es funktioniert, wenn 'print' anstelle von' return' verwendet wird. –

Verwandte Themen