我有这段代码:
allFiles = os.listdir(myPath)
for module in allFiles:
if 'Module' in module: #if the word module is in the filename
dirToScreens = os.path.join(myPath, module)
allSreens = os.listdir(dirToScreens)
现在,一切正常,我只需更改行
allSreens = os.listdir(dirToScreens)
获取刚才文件的列表,而不是文件夹。 因此,当我使用
时allScreens [ f for f in os.listdir(dirToScreens) if os.isfile(join(dirToScreens, f)) ]
它说
module object has no attribute isfile
注意:我使用的是 Python 2.7
答案 0 :(得分:39)
您可以使用os.path.isfile
方法:
import os
from os import path
files = [f for f in os.listdir(dirToScreens) if path.isfile(f)]
或者如果你觉得有用:D
files = filter(path.isfile, os.listdir(dirToScreens))
答案 1 :(得分:7)
“如果您需要一个文件列表,所有文件名都有一定的扩展名,前缀或中间的任何常用字符串,请使用glob而不是自己编写代码来扫描目录内容”
import os
import glob
[name for name in glob.glob(os.path.join(path,'*.*')) if os.path.isfile(os.path.join(path,name))]