OSX系统下Python脚本输入文件路径触发SyntaxError问题求助
解决Python脚本输入路径时的SyntaxError问题
看起来你遇到的是Python版本差异导致的输入函数问题,加上路径本身可能也不对,我来帮你拆解解决:
错误原因分析
你在OSX上用python命令运行脚本,默认调用的是Python 2,而Python 2里的input()函数会把用户输入的内容当作Python代码去解析。当你输入/Documents时,Python会尝试把它当作表达式执行,这显然不符合语法规则,所以抛出了SyntaxError。
而在Python 3中,input()是直接获取字符串输入,不会做代码解析,这也是大多数现代脚本的写法。另外要注意:/Documents是根目录下的路径,一般普通用户的Documents文件夹在用户主目录下,正确路径应该是~/Documents(~代表当前用户的主目录)。
具体解决方案
1. 用Python 3运行脚本(推荐)
OSX通常自带Python 3,你可以切换用python3命令来运行脚本:
MBPAdmin:moviep3 Admin$ python3 merge_videos.py Enter path to input folder: ~/Documents
2. 修改脚本兼容Python 2
如果你必须用Python 2运行,把脚本里的input()替换成raw_input()——Python 2的raw_input()才是专门用来获取字符串输入的:
# 原代码 input_folder = input(input_folder_label) # 修改后 input_folder = raw_input(input_folder_label)
或者加一段兼容代码,让脚本同时支持Python 2和3:
# 在脚本开头添加这段代码 try: input = raw_input except NameError: pass # 后面的代码保持不变 input_folder = input(input_folder_label)
3. 确认路径正确性
OSX中你的Documents文件夹的完整路径应该是/Users/Admin/Documents(把Admin换成你的实际用户名),或者用简写~/Documents,这两种写法都能正确定位到文件夹。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

