所以,我试图让自己成为一个 Python 脚本,它通过选定的音乐文件夹并告诉用户特定专辑是否没有专辑封面。它基本上遍历所有文件并检查if file[-4:] in (".jpg",".bmp",".png")
,如果为真,它找到了一个图片文件。为了清楚起见,我的文件夹结构是:
- 音乐文件夹
- 北极猴子
- 骗子 (2009)
- 吸一口,看看(2011)
- 吗啡
- 治愈疼痛 (1993)
- 北极猴子
.. 等等。我正在测试脚本以查找我的北极猴子目录中是否缺少封面,并且我的脚本通过“Humbug (2009)”文件夹并找到不在命令提示符中显示的AlbumArtSmall.jpg所以我尝试了“显示隐藏的文件/文件夹”仍然没有。但是,一旦我取消选中“隐藏受保护的操作系统文件”,文件就会显示出来,所以这有点奇怪。
我的问题是 -我如何告诉 Python 跳过搜索隐藏/受保护的文件? 我查看了如何使用 os.listdir() 忽略隐藏文件?但我在那里找到的解决方案仅适用于以“。”开头的文件,这不是我需要的。
干杯!
编辑 - 这是代码:
import os
def findCover(path, band, album):
print os.path.join(path, band, album)
coverFound = False
for mFile in os.listdir(os.path.join(path, band, album)):
if mFile[-4:] in (".jpg",".bmp",".png"):
print "Cover file found - %s." % mFile
coverFound = True
return coverFound
musicFolder = "E:\Music" #for example
noCovers = []
for band in os.listdir(musicFolder): #iterate over bands inside the music folder
if band[0:] == "Arctic Monkeys": #only Arctic Monkeys
print band
bandFolder = os.path.join(musicFolder, band)
for album in os.listdir(bandFolder):
if os.path.isdir(os.path.join(bandFolder,album)):
if findCover(musicFolder, band, album): #if cover found
pass #do nothing
else:
print "Cover not found"
noCovers.append(band+" - "+album) #append to list
else: #if bandFolder is not actually a folder
pass
print ""