1 问题描述
也是一个很简单的脚本
import os
for i in range(48):
print(i)
s='python3 test.py --list=list(range(' +str(i)+ ')) '
os.system(s)
报的错是sh: 1: Syntax error: "(" unexpected
2 分析原因
linux路径中存在字符分别是空格、左括号、右括号、 &时会出现这个问题:
python在调用os.system()命令或者command.getoutput()等等系统调用函数时,如果直接把路径传进去,就会报这个错误。
python使用系统调用的正确姿势应该先对路径进行转义符转移
3 解决方法
import os
for i in range(48):
print(i)
s='python3 test.py --list=list\(range\(' +str(i)+ '\)\) '
os.system(s)