Seite 1 von 1

String umbennen

Verfasst: Donnerstag 8. Mai 2008, 14:50
von Bambie
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

Verfasst: Donnerstag 8. Mai 2008, 15:03
von lunar
[mod]re[/mod]?

Verfasst: Donnerstag 8. Mai 2008, 15:14
von Bambie
Damit habe ich das ersetzen schon hinbekommen, nur verstehe ich den Wikiartikel nicht so gut und weiss nicht, wie ich sowas mache

Verfasst: Donnerstag 8. Mai 2008, 15:17
von Leonidas
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.

Verfasst: Donnerstag 8. Mai 2008, 15:40
von Bambie
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.

Verfasst: Donnerstag 8. Mai 2008, 16:34
von Leonidas
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.