如何将Python创建文件夹代码中的文件夹列表改为用户输入?
解决方案:让用户输入文件夹名称来批量创建文件夹
你修改后的代码存在几个核心问题:
- 缺少
os模块导入,运行会直接触发NameError; - 使用Python内置类型
list作为变量名,容易引发语法冲突; - 只获取了文件夹数量,但未收集具体的文件夹名称,空列表直接拼接路径必然报错;
- 直接用
os.mkdir未做容错处理,若文件夹已存在会抛出异常。
下面给出两种实用的实现方式:
方式一:一次性输入多个文件夹名称(逗号分隔)
适合快速批量输入场景,比如输入test1, test2, my_project:
import os # 替换为你的目标路径,比如 "./output" 或者 "/Users/xxx/Documents" target_path = "folder_path" # 获取并处理用户输入 input_content = input("请输入要创建的文件夹名称,用逗号分隔:") # 拆分输入字符串,过滤空值并去除前后空格 folder_names = [name.strip() for name in input_content.split(",") if name.strip()] # 批量创建文件夹 for name in folder_names: full_path = os.path.join(target_path, name) # exist_ok=True 避免文件夹已存在时报错,os.makedirs还能自动创建多级父目录 os.makedirs(full_path, exist_ok=True) print(f"已创建文件夹:{full_path}")
方式二:先输入数量,再逐个输入名称
适合需要严格控制创建数量的场景:
import os target_path = "folder_path" # 获取创建数量,增加异常处理避免输入非数字 try: folder_count = int(input("请输入要创建的文件夹数量:")) except ValueError: print("请输入有效的数字!") exit() # 逐个收集文件夹名称 folder_names = [] for idx in range(folder_count): name = input(f"请输入第{idx+1}个文件夹名称:").strip() if name: folder_names.append(name) else: print("跳过空名称的文件夹") # 执行创建操作 for name in folder_names: full_path = os.path.join(target_path, name) os.makedirs(full_path, exist_ok=True) print(f"已创建文件夹:{full_path}")
关键注意事项
- 务必将
target_path替换为你实际的目标路径,支持绝对路径和相对路径; - 优先使用
os.makedirs而非os.mkdir,前者可自动创建多级父目录,exist_ok=True参数能避免文件夹已存在的报错; - 禁止使用Python内置类型名(如
list、str)作为变量名,防止破坏内置功能。
内容的提问来源于stack exchange,提问作者hackerboi
相关产品推荐
相关产品推荐

