Dango hat geschrieben:nur ne ganz kurze Frage zum Verständnis: was bedeuten die kleinen r , und warum wurde der pfad nun in eckigen Klammern geschrieben?
Die kleinen ``r`` stehen für Raw-String, d.h. die Escape-Sequenzen werden nicht ausgeführt. Also zum Beispiel '\n' ist ein Zeilenumbruch und wenn man 'C:\Programme\nbpython' hat, möchte man da ein '\n' haben und keinen Zeilenumbruch.
Der Pfad ist in eckigen Klammern weil die darunter liegende API die Prozesse startet eigentlich ein Array von Parametern erwartet. Wenn du ein Programm in der Eingabeaufforderung startest passiert auch nichts anderes dass die Eingabe nach bestimmten Regeln an Leerzeichen gespalten wird und dann an diese API funktion direkt übergeben wird. Genau diesen Zerlegungsschritt sparst du dir hier direkt, indem du direkt eine Liste übergibst. Das hat Vorteile zum beispiel wenn man irgendwelche Parameter mit übergeben will die Leerzeichen enthalten, die setzt man dann einfach in die Liste rein statt sie zu escapen und irgendwo in den String einzusetzen, wo sie dann sowieso wieder intern in eine Liste umgewantelt werden.
Hyperion, so einfach ist das mit der Sequenz eben nicht. Daher sollte man eigentlich immer eine Liste übergeben. Ab Python 2.5 kann man da nun ein Tupel übergeben, was in Python 2.4 noch nicht möglich war.