我正在尝试使用下面的删除一些文件的名称符合条件,包含'aa1'、'bb1'、'cc1'、'dd1'。你知道吗
它没有给出任何错误,但是没有一个这样的文件被删除。你知道吗
for f in os.listdir(working_folder):
if 'aa1' in f or \
'bb1' in f or \
'cc1' in f or \
'dd1' in f:
try:
os.remove(os.path.join(working_folder, f))
except OSError:
print "there's no such a file"
问题1:如何改进代码中的“或”的倍数?你知道吗
问题2:如何打印“没有aa1”、“没有bb1”等?你知道吗
我在下面试了一下,但都没用:
for f in os.listdir(working_folder):
for k in pattern:
if re.search(k, f):
try:
os.remove(os.path.join(working_folder, f))
except OSError:
print "there's no such a file"
squiguy建议的方法:
working_folder = 'C:\\'
pattern = ['aa1', 'bb1', 'cc1', 'dd1']
files_to_delete = []
for a in pattern:
for f in os.listdir(working_folder):
if a in f:
files_to_delete.append(f)
for b in files_to_delete:
os.remove(os.path.join(working_folder, b))
print os.path.join(working_folder, b) + " removed"
您可以使用
any
来缩短该条件。你知道吗相关问题 更多 >
编程相关推荐