How do you convert a string obj to a file obj?

Matthew Thorley ruach at chpc.utah.edu
Wed May 4 16:36:43 EDT 2005


Peter Otten wrote:
> Matthew Thorley wrote:
> 
> 
>>Esben Pedersen wrote:
>>
>>>Matthew Thorley wrote:
>>>
>>>
>>>>I'm writing a web app whereby a user uploads a tar acrhive which is then
>>>>opened and processed. My web form reads the file like this:
>>>>
>>>>while 1:
>>>>    data = value.file.read(1024 * 8) # Read blocks of 8KB at a time
>>>>    if not data: break
>>>>
>>>>which leaves me with data as a string obj. The problem that I have is
>>>>that the function that processes the archive expects a file object. So
>>>>far the only solution I have found it to write the file to disk and then
>>>>read it back.
>>>>
>>>>Is there an easy way to convert data, in the example above into a file
>>>>object?
>>>>
>>>>Thanks
>>>>-Matthew
>>>
>>>
>>>value.file is a file object. Why don't you give that as an argument?
>>>
>>>/Esben
>>
>>Ok I tried that but I still get this error. Any clue what I need to do?
>>
>>AttributeError: 'file' object has no attribute 'rfind'
> 
> 
> str has an rfind() method while file has not:
> 
> 
>>>>file.rfind
> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> AttributeError: type object 'file' has no attribute 'rfind'
> 
>>>>str.rfind
> 
> <method 'rfind' of 'str' objects>
> 
> So "the function" seems to expect a string rather than a file. Or perhaps
> there's an (evil) isinstance(param, file) check somewhere that triggers
> param to be treated as a filename. Absent further information, only you can
> find out. 
> 
> Peter

Ok you're right. tarfile.open expects a string; the path to the file
open. I thought that I had tried it with open file objects but I guess I
was mistaken.

Thanks all for the help
-Matthew



More information about the Python-list mailing list