我认为我完全不了解Os.walk

时间:2018-03-09 09:06:17

标签: python python-3.x

我一直在尝试构建一个工作程序,在我们导出静止图像时删除软件生成的不需要的文件。

我很满意它是如何工作的。您只需删除所需的文件夹,它将删除该文件夹中的所有文件。但是我的老板看到我使用它并询问他是否可以直接删除顶级目录文件夹,它会进入每个文件夹并删除DRX以节省他为每个文件夹手动操作的时间。

这是我目前的计划 -

#!/usr/bin/env python3
import os
import sys
import site
import threading
import time
from os import path 
from os import listdir
from os.path import isfile, join


while True:
    backboot = 'n'
    while backboot == 'n':

        print ("")
        file = (input("Please drag and drop the folder containing DRX files you wish to delete : "))
        path = file[:-1]
        os.chdir(path)
        drx = [x for x in os.listdir() if x.endswith(".drx")]
        amount = (str(len(drx)))

        print("")
        print("")
        print("")
        print ('I have found ' + amount + ' files with the .drx extension and these will now be deleted')
        print("")
        print("")
        print(*drx,sep='\n')
        print("")
        print("")
        print("")
        exts = ('.drx')


        for item in drx:
                if item.endswith(".drx"):
                    os.remove(item)

        print ('Deleted ' + amount + ' files.')
        print('')

我了解OS.walk它通过在树上向上或向下生成给定目录中的trees或文件夹。到目前为止,我有用户输入路径位置 -

file = (input("Please drag and drop the folder containing DRX files you wish to delete : "))
        path = file[:-1]
        os.chdir(path

然后我扫描DRX files

的目录
drx = [x for x in os.listdir() if x.endswith(".drx")]

并将其转换为字符串,以便告诉用户我找到了多少文件。

amount = (str(len(drx)))

所以,我猜,我需要在DRX扫描之前或期间实现OS.walk吗?功能更好吗?我只想试着绕着OS.walk,所以任何帮助都会让人惊叹。 :)

我想,我完全不知道如何让OS.walk读取我的路径变量。

for root, dirs, items in os.walk(path):

1 个答案:

答案 0 :(得分:0)

rootpath输入的绝对路径,dirsitems是包含每个目录的列表。和文件rootroot的相对路径。

for root, dirs, items in os.walk(path):
    for file in filter(lambda x: x.endswith(".drx"), items):
        file_path = os.path.join(root, file)
        #do what you like to do