我可以递归使用"%s"吗?

Rub*_*ert 0 python replace python-2.7

我可以%s在Python 2.7中递归使用吗?我试过(Python新手提醒!)

spss.Submit('SAVE OUTFILE = "%s".')%os.path.join(wdir,"PrepareTableScript_%s.sav"%str(ver).zfill(2))
Run Code Online (Sandbox Code Playgroud)

所以在替换它的字符串中%s,还有另一个%s.我得到的错误是:

TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'

但局部变量verwdir正确打印出来.我是否收到此错误,因为我试图%s递归使用或者这个(尝试过的)代码出了别的问题?

Mar*_*ers 5

你没有在这里递归使用任何东西,你只是嵌套表达式(这很好).

你的问题是你把第一个 %操作员留在了Submit()电话之外.您不是将它应用于字符串,而是应用于返回值,并Submit()返回None.将其移到括号内:

spss.Submit('SAVE OUTFILE = "%s".' % 
    os.path.join(wdir, "PrepareTableScript_%s.sav" % str(ver).zfill(2))
)
Run Code Online (Sandbox Code Playgroud)