我正在尝试编写一个自动删除特定文件夹中所有临时文件的脚本,我注意到该脚本也会删除该文件夹中的所有文本文件。任何人都可以解释为什么会这样做吗?
import os
path = 'C:\scripts27'
for root, dirs, files in os.walk(path):
for currentFile in files:
print "processing file: " + currentFile
extensions=('.tmp')
if any(currentFile.lower().endswith(ext) for ext in extensions):
os.remove(os.path.join(root, currentFile))
我在Windows 8.1 PC 64位上使用Python 2.7.10运行此脚本。
谢谢!
答案 0 :(得分:7)
我假设您的意思是提供扩展列表。但在您的情况下,extensions
被定义为('.tmp')
,不是元组而是字符串。这会导致您的代码遍历所有文件并检查以.
,t
,m
和p
结尾的名称,从而删除您的.txt
文件。
此处的修复方法是将扩展名定义为['.tmp']
或('.tmp',)
(请注意尾随,
)。