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. -- http://mail.python.org/mailman/listinfo/python-list