0

%sPython 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 に答える