2013-03-06 102 views
0

我可以在Python 2.7中遞歸使用%s嗎?我試過(Python的新手警惕!)我可以遞歸使用「%s」嗎?

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或者這個(嘗試)代碼有其他錯誤?

+0

簡短的回答:是的!但更好的問題是,爲什麼沒」你只是嘗試一下嗎?分解這個問題,我相信你可以弄明白。 – 2013-03-06 13:06:57

回答

5

你沒有使用什麼在這裏遞歸,你只是嵌套表達式(這是很好)。

你的問題是,你離開第一個%運營商以外的Submit()調用。您不是將它應用於字符串,而是將其應用於返回值,並且Submit()返回None。移動它在括號內:

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

非常感謝!代碼現在可以工作,我也明白什麼是錯的,爲什麼會出現這個錯誤! – RubenGeert 2013-03-06 13:13:02

3

你有這樣的:

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

它應該是這樣的:

spss.Submit('SAVE OUTFILE = "%s".' % os.path.join(...)) 
相關問題