Python 3.9接收用户输入目录路径执行os.chdir时报WinError 123错误如何处理
错误产生原因
- 核心问题是用户输入路径时额外添加了包裹用的引号:Python的
input()函数会原封不动保留所有用户输入的字符,你输入的"C:\Src_html"会被存储为带前后双引号的字符串,对应报错信息里的路径'"C:\\Src_html"',Windows系统不识别包含额外包裹引号的路径,直接触发文件名称语法错误。 - 额外的转义操作误区:手动输入双反斜杠的转义操作仅适用于Python代码内直接编写字符串字面量的场景,终端输入路径时无需手动转义反斜杠,
input()会自动处理输入的反斜杠字符。
解决方案
- 最简便的操作:输入路径时不需要包裹任何单/双引号,直接输入
C:\Src_html即可正常执行。 - 代码侧增加容错处理(推荐):可以自动清理输入内容首尾的空白、多余引号,避免用户误输入带来的报错,修改后的代码示例如下:
import os src_path = input("enter the src direc : ").strip().strip('\'"') print("src path ", src_path) dst_path = input("enter the dest direc: ").strip().strip('\'"') os.chdir(src_path)
处理完成后可以通过print(repr(src_path))校验路径是否已经去除多余符号,确认格式正确后再执行切换目录操作即可。
内容的提问来源于stack exchange,提问作者Girish V
相关产品推荐
相关产品推荐

