[Tutor] opening a file directly from memory

mjekl at iol.pt mjekl at iol.pt
Sun Nov 15 06:05:30 CET 2009


davea at ieee.org wrote:
> (You forgot to send this message to the list, so I'm forwarding it)
>
> mjekl at iol.pt wrote:
>>> davea at ieee.org wrote:
>>> mjekl at iol.pt wrote:
>>>> <div class="moz-text-flowed" style="font-family: -moz-fixed">I'm  
>>>> wondering if I must save a file to memory before opening it. By  
>>>> opening I mean displaying it to the user.
>>>>
>>>> I have a BLOB field in a db and I have managed to read the blob  
>>>> into a binary fileobject. I've also managed to write it to disk  
>>>> and then I open it by doubleclicking on it. But I was wondering:
>>>>
>>>> 1. How to open the file directly from code (and not by double clicking):
>>>> I'm aware of os.startfile on Win by I'm on a Mac now, so I rather  
>>>> have a cross-platform way of accomplishing this.
>>>>
>>>> 2. If there is any Python module that takes care of saving and  
>>>> cleaning temp files in an OS transparent way?
>>>>
>>>> Txs,
>>>> Miguel
>>>>
>>>
>>> You don't say what this binary data is.  Is there a specific  
>>> program that should be launched to "display it to the user" ?  Or  
>>> do you have to keep this general?
>>>
>>> If you know what the necessary program is, you could use  
>>> subprocess module to launch it.  But I don't know enough about the  
>>> Mac to know how to do the Mac equivalent of  os.startfile
>>>
>>> As for avoiding the use of a file, that depends entirely on the  
>>> program you're launching.  Some programs can be told to get their  
>>> data from stdin.  If that's the case, there's a way to provide  
>>> stdin directly from Python, using subprocess.
>>>
>>> As for temporary files, consider tempfile module. I haven't used  
>>> it, but it looks promising. HTH,
>>> DaveA
>>>
>>
>> I know what the binary data is from the database. Typically it  
>> would be some file the OS knows how to open.
>> Chiefly I'm trying to avoid making the user save the file on some  
>> location and then go and double click it to open it. This makes no  
>> sense, since the user has already made the decision to open the file.
>> Miguel
>>
>> Txs Dave.
>>
> You forgot to answer the question.  You say "The OS knows how to  
> open".  Does *your* *program* know what program is needed, to open  
> this particular binary data?
>
Yes. My program knows. A database column stores the complete file name  
(including extension), and I can be certain the applications will be  
available to run the file.
Miguel

________________________________________________________________________________
COFIDIS Maxicredito. Ate' €10.000 sem burocracias. Resposta on-line!
Clique aqui para saber mais http://www.iol.pt/correio/rodape.php?dst=0802273


More information about the Tutor mailing list