如何只获取目录中的文件?

2024-10-01 04:52:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个密码:

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

注意:我使用的是Python2.7


Tags: thein密码列表forifoslistdir
2条回答

如果您需要一个文件名列表,其中所有文件名都有特定的扩展名、前缀或任何公共字符串,请使用glob而不是自己编写代码来扫描目录内容

import os
import glob

[name for name in glob.glob(os.path.join(path,'*.*')) if os.path.isfile(os.path.join(path,name))]

您可以使用^{}方法:

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))

相关问题 更多 >