根据命名约定,使用Python删除Windows中的文件

时间:2015-01-06 15:00:05

标签: python html windows python-2.7 pycharm

我正在尝试用Python编写程序。我希望能够将此程序指向一个目录,让我们说C:\User\Desktop\Folder。此文件夹包含两种类型的HTML文件,其中一个文件名以...abc.html结尾,另一个文件以...def.html结尾。我希望以C:\User\Desktop\Folder的所有文件夹和子文件夹递归删除,以def.html结尾。这样做的最佳方式是什么?

我试过这样做:

import os
def deleteFiles(path):
 files = os.listdir(path)
 for f in files:
  if not os.path.isdir(f) and "DEF.html" in f:
   os.remove(f)
  if os.path.isdir(f):
   deleteFiles(path + "/" + f)

deleteFiles("C:\Users\ADMIN\Desktop\TestCode")

然而,在PyCharm中运行它,我收到一个错误:

WindowsError: [Error 2] The system cannot find the file specified: 'testDEF.html'

我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

您需要将os.remove(f)更改为os.remove(os.path.join(path, f))

顺便说一下,建议使用硬编码路径不是最佳做法。 也就是说你应该这样创造你的道路:

deleteFiles(os.path.join(path, f))
deleteFiles(os.path.join('C:', 'Users', 'ADMIN', 'Desktop', 'TestCode')

这样您的分隔符(' /'或' \')将自动适合您的平台。