Python:如何检查文件夹中的文件夹?



首先,如果标题不清楚,让我道歉。

为了简化我在工作中执行的任务,我已开始编写此脚本以自动从特定路径中删除文件。

我的问题是,在当前状态下,此脚本不会检查路径提供的文件夹中文件夹的内容。

我不确定如何解决这个问题,因为据我所知,它应该检查这些文件?

import os

def depdelete(path):
for f in os.listdir(path):
if f.endswith('.exe'):
os.remove(os.path.join(path, f))
print('Dep Files have been deleted.')
else:
print('No Dep Files Present.')

def DepInput():
print('Hello, Welcome to DepDelete!')
print('What is the path?')
path = input()
depdelete(path)

DepInput()

尝试使用os.walk遍历目录树,如下所示:

def depdelete(path):
for root, _, file_list in os.walk(path):
print("In directory {}".format(root))
for file_name in file_list:
if file_name.endswith(".exe"):
os.remove(os.path.join(root, file_name))
print("Deleted {}".format(os.path.join(root, file_name)))

以下是文档(底部有一些使用示例(: https://docs.python.org/3/library/os.html#os.walk

目前,您的代码只是遍历所提供文件夹中的所有文件和文件夹,并检查每个文件和文件夹的名称。为了同时检查 path 中文件夹的内容,您必须使代码递归。

您可以使用 os.walk 遍历路径中的目录树,然后检查其内容。

您将在递归子文件夹搜索中找到更详细的代码示例答案,并在列表 python 中返回文件。

看看 os.walk((

此函数将为您循环访问子目录。循环将如下所示。

for subdir, dirs, files in os.walk(path):
for f in files:   
if f.endswith('.exe'):
fullFile = os.path.join(subdir, f)
os.remove(fullFile)
print (fullFile + " was deleted")

你正在寻找os.walk().在您的情况下,它可以像这样工作:

import os
def dep_delete(path):
for path, dirs, files in os.walk(path):
for f in files: 
if f.endswith('.exe'):
os.remove(os.path.join(path, f))
print('Dep files have been deleted.')
def dep_input():
print('Hello, Welcome to dep_delete!')
print('What is the path?')
path = input()
dep_delete(path)

dep_input()

另请参阅: 在 python 中列出目录树结构?

相关内容

  • 没有找到相关文章

最新更新