2014-09-21 62 views
0

我在寫入數據到文件的程序中編寫了一個四循環。我想對輸出進行格式化如下循環中的前導/前綴0

frame001 + K.1 
frame002 + K.2 
... 
frame099 + K.99 
frame100 + K.100 

到目前爲止我做

for f in range(1, 100): 
    file.write('frame' + str(f) + ' + K.' + str(f) + '\n') 

我有K個部分正確地出來爲K.1,K.100沒問題,但我不知道如何有前綴零/有它輸出frame00F frameFIF與適當數量的前面的零。

回答

2

使用str.format

>>> 'frame{0:03d} + K.{0}\n'.format(1) 
'frame001 + K.1\n' 
>>> 'frame{0:03d} + K.{0}\n'.format(100) 
'frame100 + K.100\n' 

BTW,range(1, 100)不會屈服100。如果要包含100,那應該是range(1, 101)


如果您正在使用舊版本的Python(Python的2.5),使用% operator(字符串格式化操作),而不是(需要指定不同str.format多個參數)

>>> 'frame%03d + K.%d\n' % (1, 1) 
'frame001 + K.1\n' 
>>> 'frame%03d + K.%d\n' % (100, 100) 
'frame100 + K.100\n' 

如果不這樣做的要重複的論點,你能傳遞映射略有不同的格式說明:

>>> 'frame%(i)03d + K.%(i)d\n' % {'i': 1} 
'frame001 + K.1\n' 
+0

@ user3295674,也許你正在使用舊版本的Python(2.5),我會upda你的答案。 – falsetru 2014-09-21 04:33:43

+0

我導入了我認爲是字符串庫,但我得到AttributeError:'str'對象沒有屬性'格式' – user3295674 2014-09-21 04:34:21

+0

謝謝,我試過它指定的Python 2.6,它的工作 - 仍然好奇同樣的解決方案,雖然較舊的Python版本:) – user3295674 2014-09-21 04:35:11