files = [ f for f in listdir(path) if isfile(join(path,f)) ] 有猿解释一下吗?

files = [ f for f in listdir(path) if isfile(join(path,f)) ] 有猿帮忙解释一下吗?谢谢


import os
path=r'C:\Users\jackey\Desktop\WIP'

files1 = [ f for f in os.listdir(path)]

files2 = [ f for f in os.listdir(path) if os.path.isfile(os.path.join(path,f)) ]
print(files1)

print(files2)

['jk', 'WIP_Report_for_BLZN_20211116.xls', 'WIP_Report_for_BLZN_20211127.xls', 'WIP_Report_for_BLZN_20211128.xls', 'WIP_Report_SPIL-BOUFFALOLAB_20211127.xls', 'WIP_Report_SPIL-BOUFFALOLAB_20211128.xls']
['WIP_Report_for_BLZN_20211116.xls', 'WIP_Report_for_BLZN_20211127.xls', 'WIP_Report_for_BLZN_20211128.xls', 'WIP_Report_SPIL-BOUFFALOLAB_20211127.xls', 'WIP_Report_SPIL-BOUFFALOLAB_20211128.xls']

这样就清楚了,列表生成式,列举一个文件夹下是文件的所有文件名, if 用来滤除其他非当前文件夹文件。