我想知道是否有人可以帮助我使用python脚本:
- 如果响应为“否”,则在列表中为名称创建一个目录。
目录完成后退出脚本执行。
在退出脚本之前,通知用户已创建目录。 - 如果响应为“是”,则询问用户要创建的新目录的名称。
- 将该名称添加到上面创建的列表
- 如果响应不是上述两个选项(即他们确实如此) 不要同时输入“是”和“否”,然后重复提问。
这是我到目前为止所做的,它创建了新的目录,但后来我对“是”的响应感到困惑:
import os
root_path = r"C:\XYZ"
list_dir = []
userinput1 = raw_input("Please enter the name of new directory:")
list_dir.append(userinput1)
userinput2 = raw_input("Would you like to add another directory? yes/no: ")
if userinput2 == "no":
for list in list_dir:
os.mkdir(os.path.join(root_path,list))
非常感谢任何帮助!
答案 0 :(得分:1)
我不确定您是否保留了最后才创建的文件夹列表对您来说很重要。假设不是,这应该可以解决您的问题:
import os
root = r"C:\XYZ"
while True:
dir_name = raw_input("Please enter the name of new directory: ")
try:
os.mkdir(os.path.join(root, dir_name))
print("Directory '{name}' was created.".format(name=dir_name))
except OSError:
print("Directory '{name}' already exists.".format(name=dir_name))
repeat = raw_input("Would you like to add another directory? yes/no: ")
if repeat.lower() != "yes" and repeat.lower() != "y":
break
如果出于某种原因,最重要的是只在最后创建列表:
import os
root = r"."
directory_list = []
while True:
directory_name = raw_input("Please enter the name of new directory: ")
directory_list.append(directory_name)
repeat = raw_input("Would you like to add another directory? yes/no: ")
if repeat.lower() != "yes" and repeat.lower() != "y":
break
for directory in directory_list:
try:
os.mkdir(os.path.join(root, directory))
print("Directory '{name}' was created.".format(name=directory))
except OSError:
print("Directory '{name}' already exists.".format(name=directory))
在这两种情况下,如果用户输入" y","是","是"," yEs&#34的任何变体,它将继续;等等,否则停止。
希望这会有所帮助。 :)
答案 1 :(得分:0)
尝试添加while循环来询问目录:
import os
root_path = r"C:\XYZ"
list_dir = []
while True:
userinput1 = raw_input("Please enter the name of new directory:")
list_dir.append(userinput1)
userinput2 = None
while userinput2 != "yes" and userinput2 != "no":
userinput2 = raw_input("Would you like to add another directory? yes/no: ")
if userinput2 == "no":
break
for directory in list_dir:
os.mkdir(os.path.join(root_path, directory))
首先将if == "no":
修复为if userinput2 == "no":
第二次添加for以循环显示包含目录名称的列表并逐个创建。