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

Python读取文本文件内容并按文件内名称创建对应文件夹及报错解决

错误原因
  • readlines() 读取文件每行内容时,会默认保留行尾的换行符\n,你报错信息中的'duck\n'就属于这种情况,Windows系统禁止文件夹名包含换行符,直接用来创建文件夹就会触发WinError 123语法错误。
  • 出现单个字母文件夹,大概率是你读取文件时误用了read()方法(而非你贴的readlines()),read()会返回整个文件的字符串,遍历字符串时会逐个取出字符,就会生成单个字母的文件夹;如果确实用了readlines(),则是你的所有名称都写在同一行,整个行内容作为列表的唯一元素,遍历错误也会出现该问题。
修复代码

首先确认你的new clients.txt存储格式,对应选择代码即可:

格式1:每行存储一个名称(duck、crane各占单独一行)

import os

# with上下文管理器会自动处理文件关闭,无需手动调用close
with open("new clients.txt", "r", encoding="utf-8") as f:
    # 逐行读取,去掉每行首尾的空白字符(包含换行符、空格等),同时过滤空行
    folder_list = [line.strip() for line in f if line.strip()]

for folder_name in folder_list:
    os.mkdir(folder_name)

格式2:所有名称写在同一行,用顿号分隔

import os

with open("new clients.txt", "r", encoding="utf-8") as f:
    # 读取全部内容后去掉首尾空白,再按顿号分割为名称列表
    content = f.read().strip()
    folder_list = [name.strip() for name in content.split("、") if name.strip()]

for folder_name in folder_list:
    os.mkdir(folder_name)

内容的提问来源于stack exchange,提问作者poop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:36:05