54 votes

créer et lire à partir du fichier temporaire

Y a-t-il de toute façon que je pourrais écrire dans le fichier temporaire et l'inclure dans une commande, puis le fermer/le supprimer. Je voudrais exécuter la commande, par exemple : some_command /tmp/some-temp-file. Merci d'avance.

 import tempfile
temp = tempfile.TemporaryFile()
temp.write('Some data')
command=(some_command temp.name)
temp.close()

92voto

balki Points 4786

Exemple complet.

 import tempfile
with tempfile.NamedTemporaryFile() as temp:
    temp.write('Some data')
    if should_call_some_python_function_that_will_read_the_file():
       temp.seek(0)
       some_python_function(temp)
    elif should_call_external_command():
       temp.flush()
       subprocess.call(["wc", temp.name])

Mise à jour : Comme mentionné dans les commentaires, cela peut ne pas fonctionner sous Windows. Utilisez cette solution pour Windows

Mise à jour 2 : Python3 nécessite que la chaîne à écrire soit représentée en octets, pas en str, alors faites-le à la place

 temp.write(bytes('Some data', encoding = 'utf-8')) 

38voto

Dennis Benzinger Points 763

Si vous avez besoin d'un fichier temporaire avec un nom, vous devez utiliser la fonction NamedTemporaryFile . Ensuite, vous pouvez utiliser temp.name . Lire http://docs.python.org/library/tempfile.html pour plus de détails.

3voto

larsmans Points 167484

Utilisez plutôt NamedTemporaryFile et son membre name Un TemporaryFile normal n'a même pas la garantie d'avoir un nom, en raison du fonctionnement des systèmes de fichiers Unix .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X