2017-04-03 124 views
0

我是一名Python初學者,嘗試創建100個隨機數據寫入的文件。爲了這個,我已經創造了一個嵌套的循環如何限制嵌套for循環中的一個循環迭代?

file_size=['10','20','50','100','500'] 

for i in range(100): 
     j="abcd1234:"+(format(i, '03d')) 
     <action to create file> 
     for size in file_size: 
       cmd_write_data = 'dd if=/dev/zero of=/root/mydir/' + j + ' bs=1M' + ' count=' + size 
       print (cmd_write_data) 

輸出類似

dd if=/dev/zero of=/root/mydir/abcd1234:000 bs=1M count=10 
dd if=/dev/zero of=/root/mydir/abcd1234:000 bs=1M count=20 
dd if=/dev/zero of=/root/mydir/abcd1234:000 bs=1M count=50 
dd if=/dev/zero of=/root/mydir/abcd1234:000 bs=1M count=100 
dd if=/dev/zero of=/root/mydir/abcd1234:000 bs=1M count=500 
. 
. 
. 
dd if=/dev/zero of=/root/mydir/abcd1234:099 bs=1M count=10 
dd if=/dev/zero of=/root/mydir/abcd1234:099 bs=1M count=20 
dd if=/dev/zero of=/root/mydir/abcd1234:099 bs=1M count=50 
dd if=/dev/zero of=/root/mydir/abcd1234:099 bs=1M count=100 
dd if=/dev/zero of=/root/mydir/abcd1234:099 bs=1M count=500 

,但我預計,一旦設定大小,以一個文件

dd if=/dev/zero of=/root/mydir/abcd1234:000 bs=1M count=10 
dd if=/dev/zero of=/root/mydir/abcd1234:001 bs=1M count=20 
dd if=/dev/zero of=/root/mydir/abcd1234:002 bs=1M count=50 
dd if=/dev/zero of=/root/mydir/abcd1234:003 bs=1M count=100 
dd if=/dev/zero of=/root/mydir/abcd1234:004 bs=1M count=500 

,並以此類推,直到文件結束範圍。請分享您的想法,瞭解如何限制嵌套for循環中的一個循環迭代。提前致謝。 P.S使用Python 2.7

+0

什麼應該到這裏:'dd if =/dev/zero of =/root/mydir/abcd1234:005 bs = 1M count =?''10'? –

回答

0

你不應該從0迭代到100;你應該通過文件大小迭代,並在那裏更新i

i = 0 
for size in file_size: 
    j="abcd1234:"+(format(i, '03d')) 
    cmd_write_data = 'dd if=/dev/zero of=/root/mydir/' + j + ' bs=1M' + ' count=' + size 
    print (cmd_write_data) 
    i += 1 

由於strubbly指出的,甚至有一個內置功能,可以保持指數的跟蹤,而迭代:enumerate()

for i, size in enumerate(file_size): 
    j = "abcd1234:" + format(i, '03d') 
    cmd_write_data = 'dd if=/dev/zero of=/root/mydir/' + j + ' bs=1M' + ' count=' + size 
    print(cmd_write_data) 
+0

更好的是,對於我來說,枚舉大小(file_size):' – strubbly

+0

@zondo @strubbly,我已經嘗試過兩個循環,你有建議。現在可以爲每個文件分配不同的file_size,但是當file_size列表以5次迭代結束時,循環結束。我打算創建更多數量的文件(比如100) 'dd if =/dev/zero of =/root/mydir/abcd1234:000 bs = 1M count = 10dd if =/dev/zero of =/root/mydir /如果=/dev/zero =/root/mydir/abcd1234:abcd1234:001 bs = 1M count = 20 dd if =/dev/zero of =/root/mydir/abcd1234:002 bs = 1M count = 50 012xxdd = 003 bs = 1M計數= 100 dd if =/dev/zero of =/root/mydir/abcd1234:004 bs = 1M count = 500 dd if =/dev/zero of =/root/mydir/abcd1234:005 bs = 1M count = 1000' – Satz

+0

@Satz:你的'count'模式似乎不是程序可以計算的東西。如果您需要更多數字,請在「尺寸」中添加更多內容。 – zondo