0

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

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

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

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

但局部变量verwdir正确打印出来。我收到这个错误是因为我试图%s递归使用还是这个(尝试的)代码有其他问题?

4

2 回答 2

5

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

您的问题是您将第一个 %接线员留在了Submit()通话之外。您不是将其应用于字符串,而是将其应用于此处的返回值,并Submit()返回None. 将其移到括号内:

spss.Submit('SAVE OUTFILE = "%s".' % 
    os.path.join(wdir, "PrepareTableScript_%s.sav" % str(ver).zfill(2))
)
于 2013-03-06T13:05:59.160 回答
3

你有这个:

spss.Submit('SAVE OUTFILE = "%s".') % os.path.join(...)

应该是这样的:

spss.Submit('SAVE OUTFILE = "%s".' % os.path.join(...))
于 2013-03-06T13:06:11.850 回答