sjmachin at lexicon.net
Sat Apr 7 11:29:13 CEST 2007
On Apr 7, 6:56 pm, "7stud" <bbxx789_0... at yahoo.com> wrote:
> Here's the code:
> import os, os.path, pprint
> mydir = "/Users/me/2testing"
> files = [file for file in os.listdir(mydir)]
> print os.path.join(mydir, "helloWorld.py")
> files = [file
> for file in os.listdir(mydir)
> if os.path.isfile(os.path.join(dir, file) )
> ['.DS_Store', 'cpTest', 'dir1', 'testfile1', 'xmlFile.xml']
> Traceback (most recent call last):
> File "test1.py", line 16, in ?
> files = [file
> File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/
> python2.3/posixpath.py", line 62, in join
> elif path == '' or path.endswith('/'):
> AttributeError: 'builtin_function_or_method' object has no attribute
Re your subject: os.path.isfile is nothing to do with the problem.
As is evident from the traceback, the error (which is in *your* code)
was detected in os.path.join, before os.path.isfile was called.
Looking at the source file (posixpath.py), one sees that the offending
"path" (the builtin function/method with no endswith attribute) is the
first formal arg of os.path.join. You have supplied "dir" as the first
actual arg. dir is a builtin function. You meant "mydir" instead.
BTW, don't use "file" (or the name of any other builtin function) for
your own variables. Use meaningful names -- what you have called
"file" is not a file, it is the name of a file. Get pychecker and/or
pylint and run them over your source periodically. They'll detect not
only shadowing builtins but many other types of actual and potential
More information about the Python-list