Een tekenreeks splitsen door een scheidingsteken in python

Hoe deze string te splitsen waarbij __het scheidingsteken is

MATCHES__STRING

Om een ​​uitvoer van ['MATCHES', 'STRING']te krijgen?


Antwoord 1, autoriteit 100%

Je kunt de str.splitgebruiken methode: string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

Antwoord 2

Misschien ben je geïnteresseerd in de csv-module , die is ontworpen voor door komma’s gescheiden bestanden, maar kan eenvoudig worden gewijzigd om een ​​aangepast scheidingsteken te gebruiken.

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]
for row in csv.reader( lines ):
    ...

Antwoord 3

Als je twee of meer elementen in de string hebt (in het onderstaande voorbeeld zijn er drie), dan kun je een komma gebruiken om deze items te scheiden:

date, time, event_name = ev.get_text(separator='@').split("@")

Na deze regel code hebben de drie variabelen waarden uit drie delen van de variabele ev.

Dus, als de variabele evdeze tekenreeks bevat en we het scheidingsteken @toepassen:

Sa., 23. März@19:00@Klavier + Orchester: SPEZIAL

Vervolgens, na de bewerking splitde variabele

  • dateheeft de waarde Sa., 23. März
  • timeheeft de waarde 19:00
  • event_nameheeft de waarde Klavier + Orchester: SPEZIAL

Antwoord 4

Voor Python 3.8 heb je de get_textmethode eigenlijk niet nodig, je kunt gewoon ev.split("@")gebruiken, in feite de get_textmethode gooit een att. fout.
Dus als je een stringvariabele hebt, bijvoorbeeld:

filename = 'file/foo/bar/fox'

Je kunt dat gewoon opsplitsen in verschillende variabelen met coma’s zoals gesuggereerd in de bovenstaande opmerking, maar met een correctie:

W, X, Y, Z = filename.split('_') 
W = 'file' 
X = 'foo'
Y = 'bar'
Z = 'fox'

Other episodes