是否可以添加多个扩展程序(例如pattern =(' .txt'或' .doc')
import os, fnmatch
def find_files(directory, pattern):
for root, dirs, files in os.walk(directory):
for basename in files:
if fnmatch.fnmatch(basename, pattern):
filename = os.path.join(root, basename)
yield filename
def find_files_to_list(directory, pattern):
wanted_files = find_files_to_list('/original_project/', '*.html')
for filename in find_files('/copy_project/', '*'):
if filename not in wanted_files:
os.remove(filename)
file_list = []
for root, dirs, files in os.walk(directory):
for basename in files:
if fnmatch.fnmatch(basename, pattern):
filename = os.path.join(root, basename)
file_list.append(filename)
return file_list
wanted_files = find_files_to_list('/original_project/', '*.html')
for filename in find_files('/copy_project/', '*'):
if filename not in wanted_files:
os.remove(filename)
答案 0 :(得分:3)
好像你只想要一个基本的字符串操作,没有?
if filename.endswith(('.txt','.doc')):
os.remove(filename)
或者,否定它,
if not filename.endswith('.html'):
os.remove(filename)
.endswith
接受您想要匹配的元组,如果有匹配则返回True
,所以如果您想保留.html和.txt扩展名:
if not filename.endswith(('.html','.txt')):
os.remove(filename)