String umbennen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bambie
User
Beiträge: 15
Registriert: Mittwoch 26. März 2008, 01:09

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
Bambie
User
Beiträge: 15
Registriert: Mittwoch 26. März 2008, 01:09

Damit habe ich das ersetzen schon hinbekommen, nur verstehe ich den Wikiartikel nicht so gut und weiss nicht, wie ich sowas mache
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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
Du hast es hinbekommen, also musst du dir keine Gedanken mehr machen. Dein Problem ist irgendwie seltsam, ich sehe da gar keines.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bambie
User
Beiträge: 15
Registriert: Mittwoch 26. März 2008, 01:09

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.
Leonidas
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten