如果名称满足条件,则删除特定扩展名的文件

时间:2014-07-10 23:22:23

标签: python file python-3.x

我不确定这是否简单,但我有一个包含大量csv和txt文件的文件夹。我需要删除名称末尾没有0的所有CSV文件。我有一个简单的方法吗?

以防该文件夹与我的脚本所在的文件夹相同,因此无需输入文件路径。我正在运行python 3.3.3。任何想法都非常感谢!!

谢谢!

2 个答案:

答案 0 :(得分:4)

与Padraic的出色反应相同:

import os, glob
files = [file for file in glob.glob("path/to/files/*.csv") if not file.endswith("0.csv")]
for file in files:
    os.remove(file)

我认为首先构建列表并迭代删除看起来有点干净。因人而异。我喜欢这样做,因为我可以通过写下这样的内容:

with open("path/to/files/file_removal.log","w") as f:
    for file in files:
        try:
            os.remove(file)
        except Exception as e:
            f.write("! The file {} could not be removed:\n".format(file)+
                    "-->{}\n".format(e))
        else:
            f.write("The file {} was removed successfully\n".format(file))

答案 1 :(得分:2)

import glob
import os
for f in glob.glob("*.csv"): # find all csv files
    if not f.endswith("0.csv"):
        os.remove(f)  # if file name ends in 0.csv, delete it