Sonderzeichen als Befehl in eine textdatei schreiben

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
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

Hallo,

weiss nicht wie ichs recht formulieren soll, hoffe der Titel ist halbwegs verständlich.
Zu meinem Problem:

Ich möchte das heir:

Code: Alles auswählen

reaction_bat.write( 'java -Xmx500m -classpath "%RMG%"\bin\RMG.jar RMG condition.txt \n\
@echo off \n\
cmd /k %1 %2 %3 %4 %5 %6 %7 %8 %9')
reaction_bat.close()
haben, krieg aber in der endgültigen datei das hier:

Code: Alles auswählen

java -Xmx500m -classpath "%RMG%"in\RMG.jar RMG condition.txt 
@echo off 
cmd /k %1 %2 %3 %4 %5 %6 %7 %8 %9
das Problem ist als das \b

Was muss ich tun, bzw nach welchen stichworten muss ich suchen, um lösungen für dieses Problem zu erhalten.

Vielen dank vorraus

Gruß

Cyberbroker
lunar

@Cyberbroker: Nutze entweder "raw strings", oder zwei Backslashes, um Sonderzeichen zu maskieren. Mehr steht in der Dokumentation.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du musst ein Raw-String-Literal verwenden:

Code: Alles auswählen

r"\bei diesem String gibt es keine Probleme..."
:-)

Edit: lunar war wohl schneller und ausführlicher...

... aber mir fiel noch etwas auf:
Ist `reaction_bat` ein file-Objekt? Wenn ja, dann solltest Du das ganze so abhandeln:

Code: Alles auswählen

with open(...) as handler:
    # do something with handler
    # `handler` wäre Dein `reaction_bat`
`handler` wird nach dem `with`-Block automatisch geschlossen :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Cyberbroker
User
Beiträge: 16
Registriert: Dienstag 17. November 2009, 22:18

lunar hat geschrieben:...zwei Backslashes, um Sonderzeichen zu maskieren....Dokumentation.

DANKE! =) klappt einwandfrei

Gruß
Antworten