2

我看不到我在这里做错了什么

import os

def check():
    path = "d://Mu$ic//"
    for file in os.listdir(path):
        if file.endswith("*.mp3"):
            print (os.path.join(path,file))

check()

输出不显示,知道我做错了什么吗?

4

3 回答 3

1

省略*应该有效,因为endswith匹配字符串后缀(而不是*.mp3通配符):

file.endswith(".mp3"):

此外,您可以替换//为 just /

于 2017-07-12T13:07:02.147 回答
1

文件夹中只有mp3文件吗?如果是这样,为什么需要检查 endwith?如果 mp3 是该文件夹中唯一的文件类型,它应该能够在不检查它们是否以 .mp3 结尾的情况下返回它们。除非您在那里有其他文件类型,否则您将需要 endwith 检查。我在这里没有结束你的代码,它返回了文件夹中的每个 .wav 文件。

于 2017-07-12T13:29:19.293 回答
1

如果您使用的是 python 3,您也可以使用glob

import glob

_path = '{0}**/*.mp3'.format("d://Mu$ic//")
file_lst = glob.glob(_path, recursive=True)
print(file_lst)

['2.mp3', '3.mp3', ...]
于 2017-07-12T13:38:46.843 回答