我可以递归地使用“%s”吗?

2024-09-27 21:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我能在Python2.7中递归地使用%s吗?我试过了(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,还是这个(尝试的)代码有其他问题?你知道吗


Tags: pathossave错误警报outfilesubmitjoin
2条回答

你有这个:

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

应该是这样的:

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

这里没有递归地使用任何,只是嵌套表达式(这很好)。你知道吗

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

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

相关问题 更多 >

    热门问题