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

2024-10-01 17:40:46 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,伙计们,我想做一个简单的程序来清理用户输入收集的目录。AKA用户输入“E:”用于删除,“F:”用于删除。但我不能让它工作使用舒蒂尔

我似乎找不到一种方法来存储用户输入的方式,让舒蒂尔使用它删除

我对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)

Tags: 方法用户程序目录列表编程错误方式
2条回答

对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

对shutil使用string并用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"

相关问题 更多 >

    热门问题