Comment faire cStringIO transparente à une autre fonction qui attend un véritable fichier local

StackOverflow https://stackoverflow.com/questions/3917902

  •  29-09-2019
  •  | 
  •  

Question

Je suis venu avec le problème suivant: CODE A fonctionne en ce moment .. Je suis enregistrement d'un fichier appelé .png chart.png localement, puis je le charger dans la fonction propriétaire (que je n'ai pas accès).

Cependant, CODE B, essaie d'utiliser cStringIO.StringIO () pour que je ne dois pas écrire le fichier « chart.png » sur le disque. Mais je ne peux pas trouver un moyen de le transmettre à la pproprietaryfunction parce qu'il attend un vrai nom de fichier comme « chart.png » (on dirait qu'il utilise même la fonction split pour identifier l'extension).

CODE A (code en cours d'exécution en ce moment):

file = "chart.png"
pylab.savefig(file, format='png')
 a = proprietaryfunction.add(file)

CODE B (ce que je suis en train de le faire - et ne fonctionne pas):

file = cStringIO.StringIO()
pylab.savefig(file, format='png')
 a = proprietaryfunction.add(file)

Comment puis-je faire l'utilisation de cStringIO.StringIO () transparente à la fonction exclusive? Y at-il de toute façon que je peux émuler un système de fichiers virtuel en mémoire pour cela?

Était-ce utile?

La solution

Probablement pas, mais il y a toujours tempfile si vous avez besoin d'une solution « propre ». ..

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top