需要从用户输入选择的多个directorys中删除文件。 shutil.rmtree()

时间:2016-02-17 08:35:13

标签: python python-3.x shutil

嘿伙计们我试图制作一个简单的程序来清理用户输入收集的导演。 AKA用户输入“E:”表示删除,输入“F:”表示删除。但我不能让它工作使用shutil。

我似乎无法找到一种方法来存储用户输入,让shutil使用它来删除!

我是python和编程的新手,所以我可能会犯一些愚蠢的错误。

编辑:我需要它以便用户输入以列表的形式存储,然后我可以运行shutil来删除列表中存储的所有导演

import shutil
DeleteThis = {}

def DirectoryToDelete():
    DirectoryToEnter = input('Enter Filepath of directory you want to delete: ')
    DeleteThis.append(DirectoryToEnter)
    print (DeleteThis)

shutil.rmtree(DeleteThis)

2 个答案:

答案 0 :(得分:0)

将字符串用于shutil并使用os.path.isdir检查您的目录:

import shutil
import os.path

while True:
    directory = input('Enter Filepath of directory you want to delete: ')
    if os.path.isdir(directory):
        shutil.rmtree(directory)
        print "Directory was deleted!"
    else:
        print "Bad directory"

答案 1 :(得分:0)

JRazors的修改回答:

import shutil
import os.path
import readline

#allow tab completion in input
readline.parse_and_bind("tab: complete") 

delete_this = input('Enter Directories you want to delete separated by comma: ')
for d in delete_this.split(','):
    d=d.strip()
    if os.path.isdir(d):
        shutil.rmtree(d)
        print("{} deleted".format(d))

查看以逗号分隔的文本以查找要删除的目录。

使用示例

python delete_dir.py 
Enter Directories you want to delete separated by comma: fo<tab>
foo1/       foo2/       foo3.txt  
Enter Directories you want to delete separated by comma: foo1,foo2
foo1 deleted
foo2 deleted