You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 18:39:40