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

Mac系统下使用Python扫描目录时input函数报SyntaxError如何解决

错误原因
  • 触发该报错的核心原因是你使用Python 2.x版本运行脚本:Mac系统默认预装的Python版本为2.7,而Python 2.x中的input()函数会将用户输入的内容直接作为Python表达式解析执行,你输入的路径以/开头,不属于合法的Python表达式语法,因此触发SyntaxError。
  • 另外代码中print get_original_dir(selected)的写法仅兼容Python 2.x语法,若使用Python 3运行也会触发语法错误。
修复方案

有两种可选修复方式,更推荐使用第二种:

方案1:适配Python 2.x运行

将代码中input()替换为raw_input()即可,raw_input()会将所有用户输入当作普通字符串处理,不会做表达式解析。修改后的对应代码片段如下:

if __name__ == '__main__':
    selected = raw_input("Input target dir: ")
    print get_original_dir(selected)

修改后直接用python 脚本文件名.py即可正常运行。

方案2:使用Python 3运行(更推荐,Python 2已经停止官方维护)

  1. 先确认Mac上已安装Python 3,可在终端执行python3 --version查看版本,无返回可直接下载Python 3安装包安装
  2. 修改代码中的print语句为Python 3兼容的函数写法:
if __name__ == '__main__':
    selected = input("Input target dir: ")
    print(get_original_dir(selected))
  1. 运行脚本时使用python3 脚本文件名.py命令即可正常执行。
可选优化

你当前的代码仅会遍历返回目标目录下所有子目录路径,如果需要返回所有条目(包含文件和目录),可以将列表推导式中的if f.is_dir()判断条件删除即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:15:05