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
相关产品推荐
相关产品推荐

