2012-11-14 18 views
12

Come si concatena il valore uuid.uuid4() con un valore letterale durante la creazione di un file? Il seguito non è corretto, ma dovrebbe illustrare quello che sto cercando di fare ...Utilizzare uuid.uuid4() per creare un nuovo file

fo = open(uuid.uuid4() + ".txt", "wb") 

risposta

30

è necessario convertire il uuid ad un str:

>>> import uuid 
>>> str(uuid.uuid4()) + ".txt" 
'13eb9327-f40e-4ef1-8020-1c36af1b4b70.txt' 
3

Questa versione non include il - nella stringa

fo = open(uuid.uuid4().hex + ".txt", "wb") 

E 'spesso una buona idea per aprire il file utilizzando un gestore di contesto

with open(uuid.uuid4().hex + ".txt", "wb") as fo: 
    # do stuff with fo 
    # fo will be closed automatically 

Ecco un esempio in un ciclo

for item in data: 
    with open(uuid.uuid4().hex + ".txt", "wb") as fo: 
     fo.write(item) 
+0

Sto eseguendo un ciclo in cui creo un nuovo file (utilizzando il comando Apri poi scrivo per poi chiudo e ripetere questo processo. Un gestore di contesto sarebbe appropriato in questo scenario? – c12

+1

@ c12, certo, basta mettere dentro con il ciclo –

Problemi correlati