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

使用变量(os.path)在目录创建文件夹时遇WinError 123错误

问题:读取TXT文件创建文件夹时触发WinError 123错误

你编写了以下Python代码,试图通过读取TXT文件中的每行内容作为文件夹名来创建文件夹:

import os


folderdir = r'C:\Users\myname\Documents\Folders'
txtfile = r'C:\Users\myname\Documents\foldernames.txt'

with open(txtfile) as f:
    for line in f.readlines():
        folderpath = folderdir + "\\" + line
        print(folderpath)
        os.makedirs(folderpath)

打印出来的路径看起来正常,例如:

C:\Users\myname\Documents\Folders\Albert#2000555

但执行时却抛出错误:

OSError: [WinError 123] 文件名、目录名或卷标语法不正确: 'C:\Users\myname\Documents\Folders\Albert#2000555\n'


问题原因

错误信息里的路径末尾带有\n(换行符)——f.readlines()读取每一行时,会保留文本中行尾的换行符。而Windows系统不允许文件名或路径中包含换行符,这直接导致了语法错误。

解决方法

对读取到的每一行内容,使用strip()方法去除首尾空白字符(包括换行符、空格、制表符等),或者用rstrip('\n')精准去除行尾换行符。同时推荐使用os.path.join()拼接路径,提升代码的跨平台兼容性。

修改后的代码示例:

import os


folderdir = r'C:\Users\myname\Documents\Folders'
txtfile = r'C:\Users\myname\Documents\foldernames.txt'

with open(txtfile) as f:
    for line in f.readlines():
        # 去除首尾空白字符,包括换行符
        folder_name = line.strip()
        # 用os.path.join自动处理路径分隔符
        folderpath = os.path.join(folderdir, folder_name)
        print(folderpath)
        # exist_ok=True避免文件夹已存在时抛出错误
        os.makedirs(folderpath, exist_ok=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:55:21