Python-OpenCV延时摄影代码f-string语法错误求助
解决f-string导致的SyntaxError问题
这个报错的核心原因很明确:你使用的f-string格式化语法(f"{variable}")是Python 3.6及以上版本才支持的特性,但你的运行环境用的是低于3.6的Python版本,所以解释器识别不了这种语法,抛出了SyntaxError。
下面给你两种可行的解决办法:
方法1:替换为兼容旧版本的字符串格式化方式
把代码里所有的f-string写法替换成Python 2.7及所有Python3版本都支持的格式:
替换文件名生成的代码
把原来的:
filename = f"{timelapse_img_dir}/{i}.jpg"
改成以下两种写法之一:
- 使用
str.format()(推荐,语法更清晰):
filename = "{}/{}.jpg".format(timelapse_img_dir, i)
- 使用旧式的
%格式化:
filename = "%s/%d.jpg" % (timelapse_img_dir, i)
替换glob路径的代码
你代码里还有一处f-string:
image_list = glob.glob(f"{image_dir}/*.jpg")
同样需要替换,比如改成:
image_list = glob.glob("{}/{}".format(image_dir, "*.jpg"))
或者:
image_list = glob.glob("%s/*.jpg" % image_dir)
方法2:升级Python版本到3.6或更高
如果你的环境允许,直接把Python升级到3.6及以上版本,这样就可以继续使用简洁的f-string语法了。你可以在终端输入以下命令查看当前Python版本:
python --version # 或者如果是Python3环境的话 python3 --version
修改完成后,你的代码应该就能正常运行,不会再出现这个语法错误了。
内容的提问来源于stack exchange,提问作者Cohen
相关产品推荐
相关产品推荐

