这里我尝试创建一个代码,根据掩码删除文件夹中的文件。应删除所有包含17的文件,文件夹中文件的一般格式为?? _ ???? 17 *。* where? - 任何符号1..n,A..z; * - 任何长度的符号; _和17 - 在任何文件中(其他文件也包含18个),其扩展名无关紧要。文件夹中某些文件的例子:AB_DEFG17Something.Anything - Copy(2).txt; AB_DEFG18Something.Some - 复制(3).txt ... 附:为之前的不充分和不准确的解释道歉。如果文件的名称相似,那么你对globe.globe是正确的。 很高兴接受有关此任务的观点,我希望它对其他人有用。
import os
import re
dir_name = "/Python/Test_folder" # open the folder and read files
testfolder = os.listdir(dir_name)
def matching(r, s): # condition if there's nothing to match
match = re.search(r, s)
if match:
return "Files don't exist!"
matching(r'^\w\w\[_]\w\w\w\w\[1]\[7]\w+\[.]\w+', testfolder) # matching the mask of files
for item in testfolder.index(matching):
if item.name(matching, s):
os.remove(os.path.join(dir_name, item))
# format of filenames not converted : ??_????17*.*
答案 0 :(得分:1)
具有模式??_????17*.*
的文件夹中的所有文件都将使用以下代码删除:
import os
import re
dir_name = "/Python/Test_folder" # open the folder and read files
testfolder = os.listdir(dir_name)
p = re.compile(r'^[1-9\w]{2}_[1-9\w]{4}[1][7][\w]+\.[\w]+')
for each in testfolder:
k = p.match(each)
if k == None:
continue
os.remove(os.path.join(dir_name, each))
希望这就是你所需要的。