Python:在目录中查找扩展名为.MP3的最新文件

But*_*ers 56 python file-io

我试图在Python中找到最近修改过的(从此处开始'最新')特定类型的文件.我现在可以获得最新版本,但无论哪种类型都无关紧要.我想只获得最新的MP3文件.

目前我有:

import os

newest = max(os.listdir('.'), key = os.path.getctime)
print newest
Run Code Online (Sandbox Code Playgroud)

有没有办法修改它只给我最新的MP3文件?

fal*_*tru 94

使用glob.glob:

import os
import glob
newest = max(glob.iglob('*.[Mm][Pp]3'), key=os.path.getctime)
Run Code Online (Sandbox Code Playgroud)

  • @khpeek,尝试`max(glob.iglob(os.path.join(目录,'*.extension')),key = os.path.getctime)`:`directory`应该指向可访问的目录(相对/绝对). (4认同)
  • 好的解决方案 但是OP要求`.MP3`,所以我想要`glob('*.MP3')`直接回答这个问题,虽然不区分大小写可能是他真正想要的. (2认同)
  • @ rockymonkey555,如果你想获得最近**修改过的**文件,请使用`getmtime`而不是`getctime`. (2认同)

Kev*_*ent 11

假设您已导入操作系统并定义了路径,这将起作用:

dated_files = [(os.path.getmtime(fn), os.path.basename(fn)) 
               for fn in os.listdir(path) if fn.lower().endswith('.mp3')]
dated_files.sort()
dated_files.reverse()
newest = dated_files[0][1]
print(newest)
Run Code Online (Sandbox Code Playgroud)

  • 更清晰的代码然后接受答案. (2认同)