J'ai le code suivant:

with open('data.csv') as csvfile:
    data = csv.reader(csvfile, delimiter=' ')
    row_count = sum(1 for row in data)
    counter = 0
    while counter < row_count:
        for i in range(20):
            print('hello')
        counter = counter +1
        print('sleeping')
        time.sleep(10)

Le fichier data.csv comporte plus de 100 lignes. Mais je veux que mon compteur n'imprime que 20 lignes de bonjour, puis reste en sommeil pendant 10 secondes et redémarre l'opération jusqu'à ce qu'il corresponde au nombre de row_count.

La sortie est correcte dans la mesure où elle imprime bonjour 20 fois et imprime sleep avec un retard mais cette boucle ne se termine pas lorsqu'elle atteint row_count qui est 100. Cela continue de fonctionner. Que puis-je faire pour que cette boucle se termine une fois qu'elle atteint 100?

-1
Slartibartfast 21 nov. 2019 à 23:03

1 réponse

Meilleure réponse

Votre identité est incorrecte. Si vous identifiez la ligne où vous incrémentez le compteur, il fera ce que vous voulez. Actuellement, vous en faites 100 (ou tout ce qui équivaut à row_number) par 20.

EDIT: J'ai écrit en pensant que vous vouliez imprimer "Bonjour" row_number fois, mais en lisant votre message, il semble que vous vouliez réellement imprimer "Bonjour" row_number * 20 fois, auquel cas sûrement 2000 est la bonne réponse?

2
SimonN 21 nov. 2019 à 20:15