Python 需要从用户输入选择的多个目录中删除文件。shutil.rmtree()
嘿,伙计们,我正在尝试制作一个简单的程序来清理用户输入收集的目录。AKA用户输入“E:”用于删除,输入“F:”用于删除。但我不能让它工作使用舒特尔 我似乎找不到一种方法来存储用户输入,让shutil使用它来删除 我对python和编程非常陌生,所以我可能犯了一些愚蠢的错误 编辑:我需要它,以便用户输入以列表的形式存储,然后我可以运行shutil删除列表中存储的所有目录Python 需要从用户输入选择的多个目录中删除文件。shutil.rmtree(),python,python-3.x,shutil,Python,Python 3.x,Shutil,嘿,伙计们,我正在尝试制作一个简单的程序来清理用户输入收集的目录。AKA用户输入“E:”用于删除,输入“F:”用于删除。但我不能让它工作使用舒特尔 我似乎找不到一种方法来存储用户输入,让shutil使用它来删除 我对python和编程非常陌生,所以我可能犯了一些愚蠢的错误 编辑:我需要它,以便用户输入以列表的形式存储,然后我可以运行shutil删除列表中存储的所有目录 import shutil DeleteThis = {} def DirectoryToDelete(): Dire
import shutil
DeleteThis = {}
def DirectoryToDelete():
DirectoryToEnter = input('Enter Filepath of directory you want to delete: ')
DeleteThis.append(DirectoryToEnter)
print (DeleteThis)
shutil.rmtree(DeleteThis)
将字符串用于shutil并使用以下内容检查目录:
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
python delete_dir.py
输入要删除的目录,以逗号分隔:fo
foo1/foo2/foo3.txt
输入要删除的目录,以逗号分隔:foo1、foo2
foo1已删除
foo2已删除
如果只删除一个目录,为什么要使用集合(或列表)?另外,append
方法也用于列表。Sets use ADDLOW,如果您使用linux,您可以通过插入readline来完成输入上的制表符。在input
(和import readline)之前解析和绑定(“制表符:完成”)
。是否要修改您的答案,以便在一个输入中添加多个目录,或者以某种方式退出循环,而无需键盘中断
?另外,input
是python-3.x,而print语句是python-2.x
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