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

时间:2015-09-04 22:22:05

标签: python python-2.7 os.walk os.path

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

   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运行此脚本。

谢谢!

1 个答案:

答案 0 :(得分:7)

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

此处的修复方法是将扩展名定义为['.tmp']('.tmp',)(请注意尾随,)。