我想删除[cue,jpg,png,m3u等]类型的某些文件,但是当且仅当它们自己在文件夹中或[cue,jpg,png,m3u等的其他文件时]。 ]类型。我已经有一个函数可以在任何给定的文件夹中获取[cue,jpg,png,m3u等]类型的所有文件并将其作为列表返回,但我只需要根据条件删除所有文件以上。举个例子:文件q.jpg本身就在一个文件夹中。 myfunc()完成后,它将被删除。
编辑抱歉不清楚。让我举个更好的例子:
我们在文件夹 Gamma 中有两个文件夹 Alpha 和 Beta 。在 Alpha 中,有三个文件: 1.mp3,2.mp3,folder.jpg 。在 Beta 中,有一个文件 cover.jpg 。 myfunc()
完成后, 1.mp3,2 .mp3,folder.jpg 应该不受影响,而 cover.jpg 应该删除。
答案 0 :(得分:1)
听起来你有两个步骤:
1)给定扩展列表,获取与该扩展名匹配的文件夹中的所有文件的列表。
2)如果目录中的所有文件都有与您的列表匹配的扩展名,请将其删除
请注意,这不包括有关如何遍历目录结构或要测试的目录的任何信息......示例代码中有一个硬编码的目录。
import os
dir = "myDirectory"
extList = ['ext1', 'ext2', 'ext3']
allfiles = os.listdir(dir) # all files in that directory
myfiles = [] # will be appended to to only contain files with extensiosn matching extlist
for file in allfiles:
parts = file.split('.') # split the filename based on .
if parts[-1] in extensionlist:
myfiles.append(file)
if len(myfiles) == len(allfiles):
for file in myfiles:
path = "%s/%s" % (dir, file)
os.remove(path)
os.remove(file)