def filter_by_rectangle(lower_left, upper_right): with open('sbb.csv', 'r') as stops, open('filtered.csv', 'w') as filtered: filtered.write("Name,Latitude,Longitude\n") for line in stops: values = line.split(';') # Semikolon! name = values[0] try: lat = float(values[1]) lng = float(values[2]) if lat > lower_left[0] and lat < upper_right[0]: if lng > lower_left[1] and lng < upper_right[1]: name = '"' + name + '"' # Namen in "" einpacken filtered.write(','.join([name,str(lat),str(lng)]) + '\n') except ValueError: pass thurgau_ll = (47.37956193869952, 8.63275694257301) thurgau_ur = (47.701252984008455, 9.451238355155777) filter_by_rectangle(thurgau_ll, thurgau_ur)