2016-12-10 20 views
-1

誰かが私の欠陥を見つけるのを助けてくれたら、私はスクリプトに何をしたいのですが、毎分違う乱数が行に追加されます。私が得ている結果は、私に行の下で同じ数字を与えるだけです。エラーPythonを見つける

from openpyxl import Workbook 
from openpyxl import load_workbook 
import random 
import schedule  
import time 
import datetime  

def create_excel(info, info2): 
    wb = Workbook() 

    ws = wb.active 

    n = 1 
    ws.title = 'Test ' + str(n) 

    ws['A1'] = 42 

    wb.save('sample.xlsx') 

    while n < 4: 
     wb = load_workbook('sample.xlsx') 
     ws = wb.active 
     ws.append([info, info2]) 
     n += 1 
     wb.save('sample.xlsx') 


def main(): 
    print('Starting program now....') 
    int = random.randint(55, 99) 
    int2 = random.randint(1, 50) 
    excel(int, int2) 
    print('Finished program.') 


m = 1 
schedule.every(1).minute.do(main) 
while m < 4: 
    schedule.run_pending() 
    time.sleep(60) 
    m += 1 
+0

書かれたように、このコードが実行されることはありません。 –

答えて

1

問題は、毎回同じ2つの値を追加する行ws.append([info, info2])にあります。

whileループの各オカレンスに新しい整数のペアを追加するには、新たな1組のランダムな整数を生成する新しい関数を実装できます。

これは動作します:

def generate_random_number(): 
    int1 = random.randint(55, 99) 
    int2 = random.randint(1, 50) 
    return int1, int2 

def create_excel(): 
    wb = Workbook() 
    ws = wb.active 
    n = 1 
    ws.title = 'Test ' + str(n) 
    ws['A1'] = 42 
    wb.save('sample.xlsx') 
    while n < 4: 
     wb = load_workbook('sample.xlsx') 
     ws = wb.active 
     ws.append(generate_random_number()) 
     n += 1 
     wb.save('sample.xlsx') 

def main(): 
    print('Starting program now....') 
    create_excel() 
    print('Finished program.') 

m = 1 
schedule.every(1).minute.do(main) 
while m < 4: 
    schedule.run_pending() 
    time.sleep(60) 
    m += 1 
+1

援助ありがとうございます、それは動作します – cojoe

関連する問題