On Wed, 03 Jun 2009 01:00:15 +0200, Stef Mientki wrote: > Sorry, > but I realy don't understand the difference between the documents on my > desk and a python file in a subpath.
Let's say you have a file called "parrot", containing some arbitrary data. You read it with open('parrot').read(), and then you can do anything you want with the data inside: If the data is a JPEG image, you can pass the data to a graphics program and display it. If the data is plain text, you can manipulate the text. If the data is Perl code, you can pass it to the Perl interpreter and run it. And if the data is Python code, you can call "exec data" and execute it. execfile() does just that. It doesn't care that the file name you pass is "myfile.py" instead of "parrot" -- it's just a file. You could call it "flooble.TIFF" and it wouldn't care: >>> open('flooble.TIFF', 'w').write('print "FLOOBLE!!!"\n') >>> execfile('flooble.TIFF') FLOOBLE!!! On the other hand, modules are special. A module is an actual Python data type, like str, int, list and so forth, on more complex. All sorts of magic takes place when you say "import module_name". The most important is that, unlike execfile, an actual module object is created, complete with __file__ and __name__ attributes. (Usually -- built-in modules don't have a __file__ attribute.) If you don't go through the import mechanism, you don't get a module. -- Steven -- http://mail.python.org/mailman/listinfo/python-list