为什么Python os.path.isfile似乎忽略某些文件类型?

2 投票
1 回答
2133 浏览
提问于 2025-04-16 00:26

这是一个在Unix系统(比如Mac)上运行的简单脚本,它似乎只返回某些文件的结果为真。可是我搞不清楚为什么会这样:

workdir = '/Volumes/place/sub place'

def myFunc(bla, dir, flist):
    for f in flist:
         print f, os.path.isfile(f)

os.path.walk(workdir,myFunc,None)

返回结果是:

tests.py False
utils.py False
utils.pyc False
writeXmlForMpgInPath.py False
.DS_Store True
Playout False
Playout Masters False
Projects False
ProRes Masters False
Source False
Sydney Playout Masters False
Web Preview False
.AU009644-M.xml.swp False
.DS_Store True
.DS_Store True
.DS_Store True
.DS_Store True

1 个回答

4

你用这个函数的方式不对:

workdir = '/Volumes/place/sub place'

def myFunc(_, dir, flist):
    for f in flist:
        fpath = os.path.join(dir, f) # need to make a full path first
        print f, fpath, os.path.isfile(fpath)

os.path.walk(workdir,myFunc,None)

另外,看看 os.walk,这个更好用。

撰写回答