通过连接构建python命令

时间:2013-10-29 17:59:23

标签: python python-2.7 concatenation string-concatenation

我正在生成如此传递给python -c的命令

'python -c "import '+impMod+'; help('+module+'.'+method+') if \''+method+'\' in dir('+module+') else from '+impMod+' import '+method+' help('+method+')"'

并获得如下输出:

python -c "import os; help(os.path.pathconf) if 'pathconf' in dir(os.path) else from os import pathconf help(pathconf)"

即使我尝试

python -c "import os; help(os.path.pathconf) if 'pathconf' in dir(os.path) else from os import pathconf; help(pathconf)"

但不知道为什么我会收到SyntaxError:语法无效

任何帮助将不胜感激, 问候。

1 个答案:

答案 0 :(得分:2)

您正在混淆语句和表达式。 from .. import ..语法是一个语句,不能出现在表达式中,但是您在... if ... else ...表达式中使用它。此外,您可以在shell字符串中使用换行符。

python -c "import os
if 'pathconf' in dir(os.path):
    help(os.path.pathconf)
else:
    from os import pathconf
    help(pathconf)"

要在Python中执行此操作,您可能需要使用三引号。