我不确定这是否简单,但我有一个包含大量csv和txt文件的文件夹。我需要删除名称末尾没有0的所有CSV文件。我有一个简单的方法吗?
以防该文件夹与我的脚本所在的文件夹相同,因此无需输入文件路径。我正在运行python 3.3.3。任何想法都非常感谢!!
谢谢!
答案 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