为什么这个 Python 脚本会删除“.txt”文件以及所有“.tmp”文件?

Why does this Python script delete '.txt' files, as well as all the '.tmp' files?

我正在尝试编写一个脚本来自动删除特定文件夹中的所有临时文件,我注意到该脚本还会删除其中的所有 文本文件文件夹也是如此。任何人都可以解释为什么这样做吗?

   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 64 位 PC 上使用 Python 2.7.10。

谢谢!

我假设您的意思是提供一个扩展列表。但在您的情况下,extensions 被定义为 ('.tmp'),即 不是 一个元组而是一个字符串。这会导致您的代码遍历所有文件并检查以 .tmp 结尾的名称,从而删除您的 .txt 文件。

此处的解决方法是将扩展名定义为 ['.tmp']('.tmp',)(注意结尾的 ,)。