Python 如何删除目录中的所有文件,保持子目录不变

Python 如何删除目录中的所有文件,保持子目录不变,python,file,directory,Python,File,Directory,如何删除目录中的所有文件,但保持其所有子目录不变 从如下目录开始: root |-- somedir | |-- file1.txt | |-- file2.txt | |-- deleteme.ext | |-- subfolder1 | | |-- important_file.dbf | |-- subfolder2 | | |-- business_critical.xls 我想和你在一起 root |-- somedir | |-- subfo

如何删除目录中的所有文件,但保持其所有子目录不变

从如下目录开始:

root
|-- somedir
|   |-- file1.txt
|   |-- file2.txt
|   |-- deleteme.ext
|   |-- subfolder1
|   |   |-- important_file.dbf
|   |-- subfolder2
|   |   |-- business_critical.xls
我想和你在一起

root
|-- somedir
|   |-- subfolder1
|   |   |-- important_file.dbf
|   |-- subfolder2
|   |   |-- business_critical.xls
您可以使用和:


您在过滤子目录时遇到了哪些问题?使用列表理解如何?列表理解确实很优雅,但我不确定我是否完全获得了f的
f
@Agostino-see,例如,它无法识别任何这样的文件。我想这是因为
os.path.isfile
只获取文件名,而不是整个路径。@Agostino你是对的。我修好了。我想知道为什么没有人(包括我自己)注意到它。谢谢。您确定
path+f
在100%的情况下都有效吗?
files = [f for f in os.listdir(path) if os.path.isfile(os.path.join(path,f))]
for fname in files:
    fpath = os.path.join(path, fname)
    os.remove(fpath)