TransWikia.com

Python - How do you restart a for loop?

Stack Overflow Asked by cokola7775 on November 15, 2021

I am quite new to python and I have seen similar questions being answered but I had a lot of trouble understanding them so I am creating a new question.

I will try to give as much context and code as needed.

So I am trying to search a .csv file for a string/number (I am only searching for it in the first column) and if I find it I will have it grab the entire row of where the string/number is situated at.

(import csv was included)

input_string = input()
input_string_2 = input()

def search(x):          
    for row in (the .csv file):
        if x == row[0]:
            print (row)
            return row

output_array = search(input_string)
output_array_2 = search(input_string_2)

This seem to work with one input. But if I try with multiple inputs it only goes through the list once meaning sometimes I will not get the result for the second search. I am asking if anyone knows how to make it start over every time the function the called. Thanks in advance.

Just a note I did not get any errors when I executed this so if there is some obvious spelling mistake it is probably not the problem.

Edit: The solution that was posted might not be broad enough to address the question in other situations.

2 Answers

Not sure if this was what you were looking for:

def search(x):
    y = []
    for row in csv_file:
        if x == row[0]:
            print(row)
            y.append(row)
    return y

Answered by JD12 on November 15, 2021

You need to seek back to the beginning of the file, otherwise there's nothing left to read.

def search(x):
    csv_file.seek(0)
    for row in csv_file:
        if x == row[0]:
            print(row)
            return row

Answered by Barmar on November 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP