【问题标题】:listdir a directory and find if a file name that endswith ".mp4"" [duplicate]listdir 一个目录并查找是否以“.mp4”结尾的文件名[重复]
【发布时间】:2016-10-05 00:16:32
【问题描述】:

原问题:

a = [1, 2, 3, 4, 5, 6, 4]

print [True for i in a if i == 4]

结果:

[True, True]

如何编码以在第一个数字 4 处中断?

以下cmets,编辑为:

我确实想列出一个包含这么多文件的目录。并查找文件是否以“.mp4”结尾。

【问题讨论】:

  • 你到底想做什么?目前,您只是在构建一个匹配您的条件的元素列表,即列表中的两个4s。
  • 我确实想列出一个包含这么多文件的目录。并查找文件是否以“.mp4”结尾。
  • @Levi:这完全是一个不同的问题!使用glob.glob('name/*.mp4')

标签: python


【解决方案1】:

您的评论: "我确实想列出一个包含这么多文件的目录。并查找文件是否以 ".mp4" 结尾"

这与您发布的原始问题有很大不同。有几种方法可以做到这一点:

import glob
import os.path

dir = '.'
files = glob.glob(os.path.join(dir, '*.mp4'))
print files

glob 的优点是你只捕获你真正需要的文件名,节省内存。

但是既然你明确要求listdir()

import os
dir = '.'
allfiles = os.listdir(dir)
files = [ fname for fname in allfiles if fname.endswith('.mp4')]
print files

【讨论】:

  • /@cdarke 您能否编辑问题或标记为重复。
  • @Merlin:问题已编辑
猜你喜欢
  • 2021-11-16
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2012-10-13
  • 2012-01-09
  • 1970-01-01
相关资源
最近更新 更多