Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Python echo-en van quotes

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een script aan het schrijven die voor mij nieuwe domains toevoegd.
Bij 1 ding loop ik tegen een probleempje aan.
namelijk het echo-en van quotes.

os.system('echo AuthName "Members only" >> '+DOEL+'/web/stats/.htaccess')

de uitvoer hiervan moet dus worden >> AuthName "Members only"
Maar ik krijg op geen manier die quotes mee ge-echo-ed.
als ik er ' ' omheen zet of """ doe allemaal werkt dit niet.
Omdat er een systeem commando wordt uitgevoerd heb ik het ook op de prompt gedaan.
Daar werkt het ook niet, maar als ik

echo AuthName' "Members only" ' >> .htaccess

uitvoer dan worden die quotes ineens wel mee genomen, alleen python vist ze er weer uit :(
Google was me tot nu toe ook nog niet echt van dienst.
Ik hoop dat iemand mij hiermee kan helpen :)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Google zal je allicht beter kunnen helpen met de juiste keywords ;) Je zoekt 'escaping' ;)

[ Voor 26% gewijzigd door RobIII op 11-09-2007 00:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 24-11 22:10

PommeFritz

...geen friet

Help, waarom zo'n omweg (via een externe system call) om iets in een bestandje te schrijven?
Als je met os.system aan het klooien gaat zit je altijd weer te emmeren met shell escapings.
Schrijf gewoon direct vanuit Python naar de file;

code:
1
2
3
out=open(DOEL+'/web/stats/.htaccess', 'a')   #append mode
out.write("AuthName \"Members only\"")  
out.close()

FireFox - neem het web in eigen hand


Verwijderd

Topicstarter
Ja, ik zal het toch maar op die manier gaan doen.
Die os class leek me geschikt, dit bleek niet zo te zijn.
dank.

  • Straphka
  • Registratie: Augustus 2002
  • Niet online
Je hoeft niet eens te escapen hier:

code:
1
2
3
out=open(DOEL+'/web/stats/.htaccess', 'a')   #append mode
out.write('AuthName "Members only"')  
out.close()


Dit werkt omdat je het enclosed in ' en dat betekent dat alles binnen de ' tekens gepakt wordt. Je zou het ook andersom kunnen doen als je ' in je te displayen string wilt zetten:

code:
1
2
3
out=open(DOEL+'/web/stats/.htaccess', 'a')   #append mode
out.write("AuthName 'Members only'")  
out.close()


ps.
Houd er rekening mee dat met 'a' je de file niet leegmaakt voordat je gaat schrijven (al neem ik aan dat dat ook de bedoeling was)