首页 > 解决方案 > Python 没有多次运行我的 For 循环

问题描述

所以我已经搜索了几天,并尝试了我能想到的一切来解决这个问题。

我添加了打印语句以试图找出导致此错误的原因,看起来我的 for 语句不会运行不止一次,但我没有看到错误,我希望这里有人能看到我看不到的东西。

这是不会多次运行的部分:

for row in csv_reader1:
                print("Searching for City Coordinates In Other File")
                if f'{row["shapeid"]}' == shapeidInt:
                    print("Found City in Coordinates File")
                    if coordString == "none":
                        print("First in City")
                        coordString = f'({row["ycoords"]} {row["xcoords"]}'
                    else:
                        print("Not First in City")
                        coordString += f', {row["ycoords"]} {row["xcoords"]}'

                else:
                    print("Shapeid is not shapeidInt")

这是完整的代码:

import csv
import os

shapeidInt = "0123456"
labelString = "none"
coordString = "none"

if os.path.exists("Output.txt"):
  os.remove("Output.txt")

with open('nodesfake.csv', mode='r') as nodes_file, open('driver-attributes.csv', mode='r') as driver_attributes_file:
    csv_reader = csv.DictReader(driver_attributes_file)
    print("Starting")
    for row in csv_reader:
        print("Searching for a City")
        shapeidInt = f'{row["shapeid"]}'
        labelString = f'{row["LABEL"]}'
        if shapeidInt == "":
            print("Blank Found")
            continue
        else:

            print("Found and Loading a City" + f'{row["shapeid"]}')
            csv_reader1 = csv.DictReader(nodes_file)
            for row in csv_reader1:
                print("Searching for City Coordinates In Other File")
                if f'{row["shapeid"]}' == shapeidInt:
                    print("Found City in Coordinates File")
                    if coordString == "none":
                        print("First in City")
                        coordString = f'({row["ycoords"]} {row["xcoords"]}'
                    else:
                        print("Not First in City")
                        coordString += f', {row["ycoords"]} {row["xcoords"]}'

                else:
                    print("Shapeid is not shapeidInt")

            f = open("Output.txt", "a+")
            print("Appending File")
            f.write(f'SET @' + labelString + '= ST_GEOMFROMTEXT(\r\n')
            f.write("  'POLYGON(\r\n")
            coordString += ")\r\n"
            f.write(coordString)
            f.write("  )'\r\n")
            f.write(');\r\n')

            f.close()



    print("=======================Finished=======================")
    print(f'=====================Check Output=====================')

示例输出:

Starting
Searching for a City
Blank Found
Searching for a City
Found and Loading a City0
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
Not First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
Not First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
Not First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
Not First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
Not First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Found City in Coordinates File
Not First in City
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Searching for City Coordinates In Other File
Shapeid is not shapeidInt
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City1
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City1.1
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City1.2
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City1.3
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City1.4
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City1.5
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City2
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City2.0.ring1
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City3
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City4
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City5
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City6
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City7
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City8
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City9
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City10
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City11
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City12
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City13
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City14
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City15
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City16
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City17
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City18
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City19
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City20
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City21
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City22
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City23
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City24
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City24.1
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City24.2
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City25
Appending File
Searching for a City
Blank Found
Searching for a City
Found and Loading a City26
Appending File
=======================Finished=======================
=====================Check Output=====================

Process returned 0 (0x0)        execution time : 0.591 s
Press any key to continue . . .

编辑:: 对不起,我希望这是你所说的更完整和可验证的意思@Pelipap 不幸的是,这是我能想到的最小的。

我正在尝试遍历 driver-attributes.csv 并获取 shapeid + Label 然后使用它在 nodesfake.csv 中搜索该特定 shapeid 并获取所有坐标并将它们打印到文件中,如下所示:

SET @Ash Township= ST_GEOMFROMTEXT(
  'POLYGON(
(42.03516778 -83.41969026, 42.03679795 -83.41973153, 42.04044454 -83.4198216, 42.04155794 -83.41981444, 42.0440793 -83.41985152, 42.0452773 -83.41985275, 42.0466032 -83.41988936)
  )'
);

driver-attributes.csv 示例:

shapeid,OBJECTID,FIPSCODE,FIPSNUM,NAME,LABEL,TYPE,SQKM,SQMILES,ACRES,VER,LAYOUT,PENINSULA,ShapeSTAre,ShapeSTLen
,,,,,,,,,,,,,,
0,961,3680,3680,Ash,Ash Township,Township,90.159,34.81,22278.523,17A,landscape,lower,163750009.8,52066.60235
,,,,,,,,,,,,,,
1,965,7720,7720,Berlin,Berlin Township,Township,84.898,32.779,20978.464,17A,landscape,lower,154060891.4,95099.85825
,,,,,,,,,,,,,,
1.1,965,7720,7720,Berlin,Berlin Township,Township,84.898,32.779,20978.464,17A,landscape,lower,154060891.4,95099.85825

示例 od nodesfake.csv:

shapeid,xcoords,ycoords
,,
0,-83.41969026,42.03516778
,,
0,-83.41973153,42.03679795
,,
0,-83.4198216,42.04044454
,,
0,-83.41981444,42.04155794
,,
0,-83.41985152,42.0440793
,,
0,-83.41985275,42.0452773
,,
0,-83.41988936,42.0466032
,,
1,-83.23384725,41.99454614
,,
1,-83.23398864,41.99444096
,,
1,-83.24133912,41.97833409

标签: python

解决方案


您迭代“driver-attributes.csv”和“nodesfake.csv”。您可能想要做的是为“driver-attributes.csv”的每一行打开“nodesfake.csv”并从头开始迭代。with open('nodesfake.csv', mode='r') as nodes_file就在之前移动csv_reader1 = csv.DictReader(nodes_file)


推荐阅读