我希望此功能删除文件。它正确地执行了此操作,但还删除了我不想要的文件夹。
执行期间我也遇到错误:
Access is denied: 'C:/temp3\\IDB_KKK
在文件夹temp3中我有:
IDB_OPP.txt
IDB_KKK - folder
代码:
def delete_Files_StartWith(Path,Start_With_Key):
my_dir = Path
for fname in os.listdir(my_dir):
if fname.startswith(Start_With_Key):
os.remove(os.path.join(my_dir, fname))
delete_Files_StartWith("C:/temp3","IDB_")
答案 0 :(得分:2)
使用以下内容检查它是否是目录:
os.path.isdir(fname) //if is a directory
答案 1 :(得分:1)
删除目录及其所有内容use shutil
。
shutil模块对文件和文件集合提供了许多高级操作。
请参阅问题How do I remove/delete a folder that is not empty with Python?
import shutil
..
if fname.startswith(Start_With_Key):
shutil.rmtree(os.path.join(my_dir, fname))
答案 2 :(得分:0)
是否要以递归方式删除文件(即包含Path
的子目录中的文件),而不删除这些子目录?
import os
def delete_Files_StartWith(Path, Start_With_Key):
for dirPath, subDirs, fileNames in os.walk(Path):
for fileName in fileNames: # only considers files, not directories
if fileName.startswith(Start_With_Key):
os.remove(os.path.join(dirPath, fileName))
答案 3 :(得分:0)
我通过以下方式解决了这个问题:
def delete_Files_StartWith(Path,Start_With_Key):
os.chdir(Path)
for fname in os.listdir("."):
if os.path.isfile(fname) and fname.startswith(Start_With_Key):
os.remove(fname)
谢谢大家。