Python脚本仅本机MacBook可运行 其他设备报U+00A0语法错误求解决
错误原因
报错提示的U+00A0是不间断空格,属于非打印类特殊字符,Python语法解析时不支持将它作为合法的空格或缩进使用,因此触发语法错误。你自己的Mac上运行正常是因为原脚本不存在这类字符,大概率是你将脚本传输/复制到其他Mac的过程中,通过带富文本格式的聊天工具、文档粘贴时带入了这类特殊字符。
修复方案
定位异常字符
打开终端进入脚本所在的目录,执行命令:cat -A 你的脚本文件名.py
输出结果中所有标记了\xc2\xa0的位置,就是U+00A0字符的所在处,通常集中在代码缩进位置、变量与符号之间的空隙处。批量替换修复
二选一操作即可:- 代码编辑器替换:用VSCode、Sublime Text等代码编辑器打开脚本,调出查找替换面板,开启正则匹配模式,搜索
\u00A0,全部替换为普通半角空格即可。 - 终端一键替换:在脚本所在目录直接执行以下命令:
sed -i '' 's/\xc2\xa0/ /g' 你的脚本文件名.py
- 代码编辑器替换:用VSCode、Sublime Text等代码编辑器打开脚本,调出查找替换面板,开启正则匹配模式,搜索
后续注意事项
编写Python代码时不要用Word、系统备忘录这类带富文本格式的工具,复制代码优先从纯文本源复制,避免带入特殊格式字符。
内容的提问来源于stack exchange,提问作者Owen
相关产品推荐
相关产品推荐

