2013-12-09 431 views
-1

你好,我是想挽救這個while循環的打印效果,然後將它們上傳到數據庫Python的節能while循環導致

i=0 
x=0 
n=0 

while x < len(round1): 
    n +=1 
    print 'match number',n, ':' ,round1[x],scoretop[i],'VS','team:', round1[x+1],scorebottom[i],"\n" 
    x=x+2 
    i=i+1 

我完全新的Python很抱歉,如果這是一個簡單的問題

+0

*對不起,如果這是一個簡單的問題* - 問題是什麼?你是什​​麼意思*將它們上傳到數據庫*?等等... –

回答

0

做一個數據結構,事先和追加到它,而你是在循環:然後

results = [] # A list of the results that 
      # that we will get in the while loop 
i=0 
x=0 
n=0 

while x < len(round1): 
    n +=1 
    results.append(' '.join(map(str, 
           ['match number', 
           n, 
           ':' , 
           round1[x], 
           scoretop[i], 
           'VS','team:', 
           round1[x+1],scorebottom[i],"\n"]))) 
    x=x+2 
    i=i+1 

結果將保存在results列表,你可以然後遍歷並傳送到數據庫:

for i in results: 
    send_to_database(i) 

或者你可以連接所有的字符串連接在一起,並送他們的方式,如果你喜歡:

send_to_database('\n'.join(results)) 
+0

感謝您的快速回復我嘗試了你的建議,但我得到這個錯誤「round1 [x + 1],scorebottom [i],」\ n「))) TypeError:參數3 map()必須支持迭代「我缺少什麼? – blueinc

+0

@ user3083018我的不好,現在應該修復。 – dg123

1

如果你對某些類UNIX系統你可以運行這個並將輸出重定向到這樣的文件:

python your-file.py > output.txt 

然後你可以手動將輸出上傳到你的數據庫。

如果您想自動上傳結果,應該將結果保存在列表中,而不是打印出來,然後通過數據庫的API上傳。查看dg123的答案,瞭解將結果保存在列表中的詳細信息。

0

我假設你想print到文件,你可以簡單地寫入一個文件:

with open('log.txt', 'w') as outfile: 
    while x < len(round1): 
    # some operations 
    out = ' '.join(map(str, ['match number', n, ':', round1[x], scoretop[i], 'VS', 'team:', round1[x+1], scorebottom[i], "\n"])) 
    outfile.write(out) 

如果您在UNIX機器上工作,只需按照@Ich UND Nicht的建議都