Hallo zusammen,
ich habe hier auf dem Rechner noch ein paar Sachen und wollte diese jetzt umbennen und um das nicht alles per Hand zu machen, wollte ich mir ein kleines Skript basteln.
Dateien einlesen und umbennen habe ich schon hinbekommen
Nun habe ich aber ein kleines Problem, wo ich nichts zu gefunden habe:
Problem 1:
blablabla (asdfasdfasdf).endung
jetzt möchte ich die Klammern und dessen Inhalt, der immer anders ist löschen lassen.
Problem 2:
A**B**asdfasdf.endung
* sind immer Zahlen, A und B stehen dort immer. Jetzt möchte ich das hinterher so haben:
A**B** asdfasdf.endung
Also ein Leerzeichen zwischen dem ersten Teil und den zweiten Teil
Ich wäre für jede Antwort dankbar
MFG Bambie
String umbennen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du hast es hinbekommen, also musst du dir keine Gedanken mehr machen. Dein Problem ist irgendwie seltsam, ich sehe da gar keines.Bambie hat geschrieben:Damit habe ich das ersetzen schon hinbekommen, nur verstehe ich den Wikiartikel nicht so gut und weiss nicht, wie ich sowas mache
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Nun, ich kann zwar mit
print re.sub('dies ersetzen mit', 'dem hier', string)
Aber ich weiss nicht, wie ich damit Variable Dinge ändern kann, zum Beispiel
'asdfasdf (qwert) yxcv'
in
'asdf (qwer) yxcv'
Wobei das auf ein komplettes Verzeichnis angewendet wird, und der Inhalt der Klammern immer verschieden ist.
print re.sub('dies ersetzen mit', 'dem hier', string)
Aber ich weiss nicht, wie ich damit Variable Dinge ändern kann, zum Beispiel
'asdfasdf (qwert) yxcv'
in
'asdf (qwer) yxcv'
Wobei das auf ein komplettes Verzeichnis angewendet wird, und der Inhalt der Klammern immer verschieden ist.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ungetestet, aber etwa so:
r'(.*?)\((.*?))(.*?)' -> r'\1 (\2) \3'
D.h. du definiserst drei Gruppen, eine vor, eine in und eine hinter der Klammer und im Ersetzungsstring setzt du die wieder entsprechend mit Leerzeichen ein.
r'(.*?)\((.*?))(.*?)' -> r'\1 (\2) \3'
D.h. du definiserst drei Gruppen, eine vor, eine in und eine hinter der Klammer und im Ersetzungsstring setzt du die wieder entsprechend mit Leerzeichen ein.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice