Insert Content of a File into a Variable
Cameron Walsh
cameron.walsh at gmail.com
Thu Oct 26 23:52:27 EDT 2006
Wijaya Edward wrote:
> Hi,
>
> How can we slurp all content of a single file
> into one variable?
>
> I tried this:
>
>>>> myfile_content = open('somefile.txt')
>>>> print myfile_content,
> <open file 'somefile.txt', mode 'r' at 0xb7f532e0>
>
>
> But it doesn't print the content of the file.
>>> help(open)
Help on built-in function open in module __builtin__:
open(...)
open(name[, mode[, buffering]]) -> file object
Open a file using the file() type, returns a file object.
>>> help(file)
Help on class file in module __builtin__:
class file(object)
| file(name[, mode[, buffering]]) -> file object
<SNIP>
|read(...)
| read([size]) -> read at most size bytes, returned as a string.
|
| If the size argument is negative or omitted, read until EOF is
| reached.
| Notice that when in non-blocking mode, less data than what was
| requested
| may be returned, even if no size parameter was given.
<SNIP>
|readlines(...)
| readlines([size]) -> list of strings, each a line from the file.
|
| Call readline() repeatedly and return a list of the lines so read.
| The optional size argument, if given, is an approximate bound on the
| total number of bytes in the lines returned.
<SNIP>
Those sound useful...
Or alternatively:
>>> my_file = open('somefile.txt')
>>> print myfile_content,
<open file 'somefile.txt', mode 'r' at 0xb7f532e0>
>>> #Hmmm, that's not what I wanted, what can I do with this?
>>> dir(my_file)
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__',
'__getattribute__', '__hash__', '__init__', '__iter__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__',
'close', 'closed', 'encoding', 'fileno', 'flush', 'isatty', 'mode',
'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines',
'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines',
'xreadlines']
>>> #That read attribute looks interesting...
>>> my_file.read
<built-in method read of file object at 0x011750B0>
>>> my_file.read()
Ye gads! I wish I'd chosen a shorter file! Or used a variable to put
it in! <SNIP>
>>> text = my_file.read()
>>> print text
Ye gads! I wish I'd chosen a shorter file! <SNIP>
You might also try:
>>> lines = my_file.readlines()
>>> for line in lines:
>>> print line
<SNIP lots of lines>
Hope it helps,
Cameron.
More information about the Python-list
mailing list