2013-12-17 13 views
6

Nel mio script di shell, utilizzo il blocco heredoc per creare un file al volo. Qual è l'equivalente Python?creazione di un nuovo file di testo utilizzando heredoc

cat > myserver.pem << "heredoc" 
-----BEGIN RSA PRIVATE KEY----- 
MIIEpQIBAAKCAQEAnTsiYssvsuM1DRjyhqD8+ZB8ESqUFHgzeBYONp3yqjK8ICw/LRrxjXGXidAW 
aPBXfktv3zN/kFsLMEFJKrJs/TLCfXG1CwFHMZzJRLM4aE6E0j6j+KF96cY5rfAo82rvP5kQdTIm 
-----END RSA PRIVATE KEY----- 
heredoc 

Sto cercando una soluzione semplice. Mi piace molto il codice di script della shell sopra. Posso usarlo "così com'è" in python?

risposta

11

Non è possibile utilizzare il codice così com'è, ma si può semplicemente utilizzare una stringa tripla citato per il testo, e combinarlo con la solita manipolazione di file built-in:

with open("myserver.pem", "w") as w: 
    w.write("""\ 
-----BEGIN RSA PRIVATE KEY----- 
MIIEpQIBAAKCAQEAnTsiYssvsuM1DRjyhqD8+ZB8ESqUFHgzeBYONp3yqjK8ICw/LRrxjXGXidAW 
aPBXfktv3zN/kFsLMEFJKrJs/TLCfXG1CwFHMZzJRLM4aE6E0j6j+KF96cY5rfAo82rvP5kQdTIm 
-----END RSA PRIVATE KEY----- 
""") 

Se Voluto simulare l'operatore >> della shell, si passerebbe "a" come la modalità a open.